【发布时间】:2015-06-23 22:45:50
【问题描述】:
我有一个 Javascript,它可以根据鼠标的位置从左到右滚动 UL:可以看到一个演示 HERE(网站仍在建设中)我希望它也可以与触摸屏设备一起使用。触摸和“拖动”手指会以类似的方式滚动 UL,点击列表会“点击”图像。
修改 JS 有多容易/多难:
$(function(){
$(window).load(function(){
var $gal = $("#gallerylist.top"),
galW = $gal.outerWidth(true),
galSW = $gal[0].scrollWidth,
wDiff = (galSW/galW)-1, /// widths difference ratio
mPadd = 200, // Mousemove Padding
damp = 20, // Mousemove response softness
mX = 0, // Real mouse position
mX2 = 0, // Modified mouse position
posX = 0,
mmAA = galW-(mPadd*2), // The mousemove available area
mmAAr = galW/mmAA; /// get available mousemove fidderence ratio
$gal.mousemove(function(e) {
mX = e.pageX - $(this).parent().offset().left - this.offsetLeft;
mX2 = Math.min( Math.max(0, mX-mPadd), mmAA ) * mmAAr;
});
setInterval(function(){
posX += (mX2 - posX) / damp; /// zenos paradox equation "catching delay"
$gal.scrollLeft(posX*wDiff);
}, 10);
});
});
【问题讨论】:
-
我发现:hammerjs.github.io 是解决此类问题的良好开端。
标签: javascript html css mousemove touchscreen