我正在尝试制作一条图像拇指“线”,它在鼠标移动时滚动。我让它工作了,但我现在的问题是我想在两边做一个“填充”,所以我不必把鼠标一直放在两边就能看到第一个/最后一个拇指。但我真的无法让它工作:/
这是我现在拥有的脚本:
// MouseMove scrolling on thumbs
var box = $('.thumbs-block'),
innerBox = $('.thumbs'),
lastElement = innerBox.find('a:last-child');
var offsetPx = 100;
var boxOffset = box.offset().left;
var boxWidth = box.width() /* - (offsetPx*2)*/;
var innerBoxWidth = (lastElement[0].offsetLeft + lastElement.outerWidth(true)) - boxOffset /* + (offsetPx*2)*/;
scrollDelayTimer = null;
box.mousemove(function (e) {
console.log('boxWidth: ' + boxWidth + ' innerBoxWidth: ' + innerBoxWidth + ' box.scrollLeft(): ' + box.scrollLeft());
var mouseX = e.pageX;
var boxMouseX = mouseX - boxOffset;
if ((boxMouseX > offsetPx) && (boxMouseX < (boxWidth - offsetPx))) {
var left = (boxMouseX * (innerBoxWidth - boxWidth) / boxWidth) /* - offsetPx*/;
clearTimeout(scrollDelayTimer);
scrollDelayTimer = setTimeout(function () {
scrollDelayTimer = null;
box.stop().animate({
"scrollLeft": left
}, {
queue: false,
duration: 500,
easing: 'linear'
});
}, 10);
}
});
我尝试在一些地方添加偏移量(内联注释掉),其中一些让它在一端工作,但不是在另一端工作:/
我很确定这是数学上的问题,但我不知道我应该做什么:/
这是一个 jsFiddle:http: //jsfiddle.net/6CJfs/1/
我希望我的问题足够清楚,不知道如何解释,希望有人能提供帮助:)