我正在使用此插件在我的网站上启用图像缩放:

http://www.elevateweb.co.uk/image-zoom/

我修改了代码,以便在您单击图像时仅显示放大镜(当您将鼠标悬停在图像上时,鼠标光标是放大镜,表示您可以单击以进行缩放).代码如下所示:

$("#mainimage").click(function() {
    $("#mainimage").elevateZoom({
        zoomType: "lens",lensShape: "round",lensSize: 300
        });
    });

这段代码工作正常.但我想做的还是删除点击缩放效果.我尝试写的任何代码都不起作用……有什么建议吗?

谢谢!

编辑:

我发现这个github注意似乎表明有一个changeState函数:

https://github.com/elevateweb/elevatezoom/commit/81c2cc4946f6bebc33c0d8e804b046b36fa1bc61

但是我在没有文档的情况下使用它时遇到了麻烦……

现在我有这样的东西(只是为了测试它):

$("#mainimage").click(function() {
    $("#mainimage").elevateZoom({
        zoomType: "lens",lensSize: 300
    });
});



$('.productbioimage').click(function(){
    var ez =   $('#mainimage').data('elevateZoom');    
    ez.changeState('disable');
});

这似乎工作正常 – 当我点击图像我得到缩放功能,当我点击这个其他(随机)div它会破坏缩放功能.但我无法弄清楚如何在点击图像时切换启用/禁用changeState函数?

谢谢!

解决方法

除非插件提供停止或删除插件本身的功能和方法,否则没有简单的方法.您需要调查插件的作用,反转或取消绑定某些事件,并删除插件添加到DOM的元素.

为了轻松完成这项工作,我建议您创建一个副本,而不是删除插件的效果.你需要有两个图像,一个插入应用插件,只需在click()上打开它们.

示例html结构:

<div id="image-wrapper">
    <div id="image1-container">
        <img src"/images/my-image.jpg" alt="my-image" />
    </div>
    <div id="image2-container">
        <!-- this element will contain the image with 'elevateZoom' applied -->
        <img id="mainimage" src"/images/my-image.jpg" alt="my-image" /> 
    </div>
</div>

jQuery的:

//apply the 'elevateZoom' plugin to the image
$("#mainimage").elevateZoom({
    zoomType: "lens",lensSize: 300
});

//on page load hide the container which plugin is applied 
$('#image2-container').hide();    

$("#image-wrapper").click(function () {
   // hide matched element if shown,shows if element is hidden
   $('#image1-container,#image2-container').toggle();    
});

更新:

我看到有一个选项,我相信你可以这样称呼它:

$('#mainimage').elevateZoom({
    zoomEnabled: false
});

您可以在click()上启用和禁用它,如下所示:

$('#mainimage').click(function () {
    /*class name 'zoomed' is just an indicator so we can determine if the image
     has been applied with elevateZoom */
    if($(this).hasClass('zoomed')){
        $(this).elevateZoom({
            zoomEnabled: false
        });
        $(this).removeClass('zoomed');            
    }else{
        $(this).elevateZoom({
            zoomType: "lens",lensSize: 300
        });
        $(this).addClass('zoomed');          
    }
});

但是我注意到设置zoomEnabled:false是不够的,因为它仍然通过构建elevateZoom组件的整个init函数.因此仍然创建一个overlay元素,它是zoomContainer.

您还需要使用$(‘.zoomContainer’)删除此元素.remove();.我还认为只需删除’.zoomContainer’即可,您无需设置zoomEnabled:false.

你可以在这里看到演示:jsfiddle.net/vF95M/

将jquery图像缩放效果绑定到onclick的更多相关文章

  1. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. 为什么XCode比Illustrator或Photoshop更好地缩放矢量图像?

    我尝试使用XCode的新PDF功能,基本上将图像缩放到1x,2x和3x.不幸的是我也在使用Spritekit,所以我宁愿使用SKTextureAtlases而不是资产目录.我的问题是,pdf的栅格化版本看起来比AdobeIllustrator的任何导出更好.这是一个带有示例的Imguralbum的链接.具体来说,从Illustrator导出的图像有2个方形尺寸:60px和90px.Xcode中的图像都具有相同的名称,但有两个不同的地图集:atlas@2x.atlas和atlas@3x.atlas.PDF从

  3. ios – 当我缩放时,如何关闭所有图像处理以查看实际的未修改像素?

    我有一个应用程序需要放大到足够远的图像,我可以清楚地看到图像上的单个像素.我需要看到一种颜色的清晰正方形,没有抗锯齿或其他通常有用的技术,使图像在显示器上看起来很好.我如何扼杀所有这些帮助?

  4. ios – 实现捏合/双击以缩放UIImage [复制]

    9个我正在尝试锻炼如何实现一个有捏/双击放大的UIImage.这是否可以使用标准的UIImageView?在文档中查看其他问题,必须使用UIScrollView完成?我希望实现一个全屏的图像(不大),如果图像较大,它应该将Aspect缩放到适合整个屏幕.然后,用户可以双击或捏合以放大图像.这是正确的方法是什么?

  5. ios – imagePickerController移动和缩放不起作用

    这是我的代码:我已经执行了代表们图像被拍摄,我可以看到移动和缩放框,但是当我移动它时,框返回到初始位置–喜欢它反弹.这是为什么?

  6. 在IOS9中的Cordova应用程序使用JQuery / Javascript的window.history问题

    在两个测试用例中唯一改变的是Cordova.js.解决方法我看到这是几个星期前,但我会发布这个,以防其他人遇到它.听起来它可能与iOS9中的哈希更改生成的导航事件有关.如果是这样,可以将其添加到index.html以禁用哈希侦听:

  7. iOS 5上的jQuery事件

    解决方法在Apple开发论坛上由一个人回答:我需要在将元素添加到DOM之后才绑定(),如下所示:

  8. ios – 在滚动视图内缩放旋转图像以适合(填充)叠加矩形的帧

    UIImageView也可以在scrollView中进行缩放和平移.有4个手势事件需要考虑:>平移手势(完成):通过检测它是否被错误地平移并重置contentOffset来完成.>旋转CGAffineTransform>滚动视图缩放>调整裁剪矩形覆盖框架据我所知,我应该能够使用相同的逻辑2,3和4来调整滚动视图的zoomScale,以使图像正确匹配.如何正确计算使旋转的图像完全适合裁剪矩形所需的缩放比例?

  9. swift教程-使用UIGestureRecognizer

    swift教程-使用UIGestureRecognizer更新提示:这篇教程已经由CarolineBegbie为适配IOS8及Swift做了更新。假如你想要在你的应用中检测手势,例如点击,缩放,平移,或者旋转,用Swift和内建的UIGestureRecognizer类实现是非常容易的。UIGestureRecognizer概述在开始之前,先看一份如何使用UIGestureRecognizers以及为什么它们如此得心应手。在IOS3.0,苹果公司就开始拯救UIGestureRecognizer类!使用UI

  10. swift 中如何定义接口

    匿名接口,swift比java更随意,连接口名字也不用,直接定义直接传递,一门牛哄哄的语言

随机推荐

  1. jquery-plugins – 是否可以使用猫头鹰旋转木马实现循环/无限轮播?

    我正在使用猫头鹰旋转木马,它的工作完美,除了它不支持循环/无限滚动.我没有搜索google和stackoverflow的想法,没有运气.有没有人在猫头鹰旋转木马上实现圆形/无限滚动?

  2. jQuery动态输入字段焦点

    我想使用以下jQuery向我的页面动态添加一个输入字段:在这样做之后,我希望输入字段具有闪烁的文本光标的焦点,所以我想在创建后立即输入.有人可以告诉我我该怎么办?

  3. jquery – 为什么$(window).height()这样错了?

    我试图获取当前浏览器的视口高度,使用但我得到的价值观太低了.当视口高度高达850px时,我从height()获取大约350或400像素的值.这是怎么回事?

  4. jquery – 如果在此div之外和其他draggables内部(使用无效和有效的还原选项),则可拖动恢复

    例如这样但是由于明显的原因,这不行.我可以说这个吗?

  5. 创建一个jQueryUI 1.8按钮菜单

    现在jQueryUI1.8已经出来了,我正在浏览更新,并且遇到了新的Buttonwidget,特别是SplitButtonwithadropdown的演示之一.这个演示似乎表明Buttonwidget可以在这里创建一个下拉菜单.作为讨论的问题,我想知道使用这个新的Button小部件来创建一个下拉菜单有什么方法.干杯.解决方法您必须在按钮下方列出一个列表,方式类似于此处为自动完成提供的演示:http

  6. 灰色divs使用JQuery

    我试图使用这个代码:为了淡出一大堆名为MySelectorDiv的div,唯一的是,它只会淡出第一个而不是所有的div,为什么呢?

  7. 使用jQuery动态插入到列表中

    我有两个订单列表在彼此旁边.当我从一个列表中选出一个节点时,我想按照字母顺序插入到另一个列表中.抓住的是我想要把一个元素放在另一个列表中,而不刷新整个列表.奇怪的是,当我插入到右边的列表中,它工作正常,但是当我插入到左边的列表中时,顺序永远不会出来.我也尝试将所有内容读入数组,并将其排序在一起,以防止children()方法没有按照显示顺序返回任何东西,但是我仍然得到相同的结果.这是我的jQuer

  8. 没有回应MediaWiki API使用jQuery

    我试图从维基百科获取一些内容作为JSON:但我没有回应.如果我粘贴到浏览器的地址栏,就像我得到预期的内容.怎么了?解决方法您需要通过添加&callback=?来触发具有$.getJSON()的JSONP行为?在querystring上,像这样:Youcantestithere.没有使用JSONP,你正在击中same-originpolicy,阻止XmlHttpRequest获取任何数据.

  9. jQuery Ajax请求每30秒

    我有这段代码,但是有些人在我的网站上的值可能会改变.我需要每30秒钟更新一次#financediv.这可以做吗解决方法您可以将代码放在单独的函数中,如下所示:然后每30秒建立一个定时器调用该函数:祝你好运!总结以上是DEVMAX为你收集整理的jQueryAjax请求每30秒全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  10. jquery – keypress事件在IE和Chrome中不工作,但在FF工作

    任何想法为什么会这样发生?我通常认为Chrome会更加宽容代码?这是我的按键键.我错过了什么吗?右图();和leftimage();是应该工作的功能,因为我在其他地方使用这些功能谢谢您的帮助!

返回
顶部