触屏设备基于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看一下具体的代码。