Tôi đang cố gắng tạo một "đường thẳng" của các hình ngón tay cái, nơi nó cuộn trên mousemove. Và tôi đã làm việc đó, nhưng vấn đề của tôi bây giờ là tôi muốn tạo ra một "đệm" ở hai bên vì vậy tôi không cần phải di chuột qua các bên để xem ngón tay cái đầu/cuối. Nhưng tôi thực sự thực sự không thể lấy nó để làm việc:/Cuộn ngang trên chuộtXoá - rộng div trong div nhỏ hơn với tràn: ẩn (Không thể có được phép toán để hoạt động)
Đây là kịch bản tôi có bây giờ:
// 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);
}
});
Có một số trong những nơi tôi đã cố gắng thêm (chú thích inline) bù đắp , một số trong đó được nó làm việc trong một đầu nhưng không phải là khác:/
tôi khá chắc chắn rằng đó là một vấn đề trong toán học, nhưng tôi không thể tìm ra những gì tôi nên làm:/
Dưới đây là a jsFiddle: http://jsfiddle.net/6CJfs/1/
Tôi hy vọng tôi đã giải quyết được vấn đề của mình đủ rõ ràng, không chắc chắn cách giải thích cách khác, và hy vọng ai đó có thể giúp :)
chỉ cần ra khỏi đầu của tôi những gì bạn có thể làm là nói với nó bằng cách nào đó mà innerbox là nhỏ hơn so với những gì nó là, và sau đó thêm giá trị tối đa để scrolleft phù – Breezer