web App开发想要实现双指缩放图片的效果,请问只用js可以实现吗?

JavaScript017

web App开发想要实现双指缩放图片的效果,请问只用js可以实现吗?,第1张

可以只用js实现,其实你这个问题的本质就是,利用js捕捉屏幕上的多点触控事件,然后根据事件触发时,这几个点的动作来进行相应的操作。

在js的触控中,有三种触控事件:

touchstart

touchmove

touchend

每个事件都可以捕捉到以下的三个属性:

touches

targetTouches

changedTouches

利用这些即可以实现事件的触发以及情况的判断。

当然,现在也有很多开源的触控事件库,如QuoJS,HammerJS,TouchY等。

移动端推荐使用Hammer.js,很多手势调用。

多点触控插件Hammer.js,是一个开源的,轻量级的javascript库,它可以在不需要依赖其他东西的情况下识别触摸,鼠标事件。

还支持jQuery插件的形式调用

<span class="tag" style="color: rgb(0, 0, 128)"><<span class="title">script src="http://eightmedia.github.com/hammer.js/jquery.hammer.js"></script>span>

$("#element")

.hammer({

// 对DOM进行一些初始化,这里可以加入一些参数

})

.bind("tap", function(ev) {

console.log(ev)

})

鼠标的手势操作主要还是基于mousedown、mousemove、mouseup来实现。

触屏设备基于touchstart、touchmove、touchend来实现。

本身这两种设备就是不等同的。而且现实工作中。谁会搞一个既在PC浏览器上支持,又在触屏浏览器上支持的东西呢?因为我们的网站本来就是分为桌面版和触屏版。让用户自由选择好了,我们开发者区分对待。

更何况,二者的手势形势从根本上就是不同的。触屏设备支持多点触控,可以进行pinch(双指缩放)、rotate(双指旋转)、双指下拉、双指上推等等特殊手势。请问鼠标如何去实现呢?

所以说,我们作为前端开发,不要总期许有一个大而全,万能的大神,写一个啥都能干的东西出来。即便是大神也要考虑有所为,有所不为啊。