如何用JS监控多种手势

JavaScript012

如何用JS监控多种手势,第1张

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

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

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

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

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

移动端推荐使用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)

})

var divTwo = $('.divTwo')

//1.禁用div的滚轮事件

$('.divTwo').mousewheel(function (e) {

return false

})

//2.如果滚动条到底底部的时候 禁用window的滚轮滚动

//3.判断滚动的方向

divTwo.mousewheel(function (e, delta) {

var decoration = delta > 0 ? 'Up' : 'down'

$('.divFixed').text(decoration)

var scrollTop = divTwo.scrollTop()

var scrollHegiht = divTwo[0].scrollHeight

var height = divTwo.height()

//滚动条 到底部且 滚轮向下滚动

if (scrollTop + height >= scrollHegiht && delta < 0) {

e.preventDefault()

}

//滚动条 到顶部 且滚轮向上

else if (scrollTop == 0 && delta > 0) {

e.preventDefault()

}

})

$(document).mousewheel(function (e, delta) {

$('.divFixed').text(delta)

})

有一个mousewheel.js插件可以实现你说的功能。这是你需要的判断向上或者向下滚动的代码。希望对你有帮助,或者你直接百度一下mousewheel看一下具体的代码。