首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按住或使用鼠标滚轮进行缩放

按住或使用鼠标滚轮进行缩放
EN

Stack Overflow用户
提问于 2016-07-06 20:04:47
回答 2查看 1.4K关注 0票数 0

我需要像这样的功能:http://preview.codecanyon.net/item/pinch-zoomer-jquery-plugin/full_screen_preview/6623080

在台式机中,可以通过鼠标滚轮来放大/缩小图像,在触摸屏设备上,可以使用两个手指手势来放大/缩小。

我会使用上面提到的库,但是6美元似乎有点太多了。我确实发现了一些其他的开源库,但它们并不具备这两个特性。

我正在构建一个静态站点,它动态地(使用javascript)加载单个图像。

EN

回答 2

Stack Overflow用户

发布于 2016-07-06 20:09:57

要获得所需的结果,您可以使用onmousewheel事件,并在触发时将其设置为基于更改图像的transform: scale(1, 1)

  • e.wheelDelta (除火狐和歌剧之外的所有浏览器) and
  • e.detail (用于火狐和歌剧)。

向下滚动时e.wheelDeltae.detail为负值,向上滚动时为正值。

示例

代码语言:javascript
复制
var image = your image id;
image.onmousewheel = function(e) {
    var delta = e.detail || e.wheelDelta;
    image.style.transform = (delta > 0) ? "scale(2, 2)" : "scale(0.5, 0.5)";
}

当然,您也可以通过根据确切的delta值修改scale来创建更复杂的函数。

票数 1
EN

Stack Overflow用户

发布于 2016-07-06 20:30:44

您可以使用touchy

只需在图片上调用一个事件,并根据收到的缩放参数,在回调中也可以更改图片的缩放比例。

代码语言:javascript
复制
$('#my_div').bind('touchy-pinch', handleTouchyPinch);

为了实现两个手指的拖动,触摸事件包含一个属性touches

代码语言:javascript
复制
$elem.on('touchstart', function (e) {
    if (e.touches.length > 1)
        // your rocking code here...
});

还可以签出this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38223566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档