Tôi có div vùng chứa có kích thước cố định và tràn: cuộn, nó được lấp đầy với các div nhỏ hơn tạo ra một loại danh sách. Dưới đây là ví dụ về fiddle: http://jsfiddle.net/etYSC/2/Làm thế nào tôi có thể làm cho một thanh cuộn chỉ cuộn trong khoảng thời gian cố định?
điều tôi muốn là cuộn không bao giờ cắt hộp, luôn hiển thị 3 hộp đầy đủ (trong ví dụ này), vì vậy nó sẽ luôn cuộn số lượng pixel cố định.
Làm cách nào để thực hiện việc này?
Tôi đang sử dụng thư viện jquery.
Google đã là một tình nhân khắc nghiệt về câu hỏi này vì các từ khóa gây hiểu lầm.
- giải pháp
tôi đã có thể tinh chỉnh đang kiranvj hơn một chút và tôi rất hài lòng với kết quả cuối cùng.
snapping div trước:
var scrollTimerHandle = "";
var positionTimerHandle = "";
$("#container").scroll(function() {
var boxSize = 84;
var newScrollPosition = parseInt(this.scrollTop/boxSize) * boxSize,
_this = this;
clearInterval(scrollTimerHandle);
scrollTimerHandle = setTimeout(function() {
positionTimerHandle = setInterval(function(){
if (_this.scrollTop == newScrollPosition){
clearInterval(positionTimerHandle);
} else {
_this.scrollTop--;
}
}, 5);
}, 600);
});
chụp để div gần
var scrollTimerHandle = "";
var positionTimerHandle = "";
$("#container").scroll(function() {
var boxSize = 84;
var preScrollPosition = parseInt(this.scrollTop/boxSize) * boxSize;
var newScrollPosition = this.scrollTop - preScrollPosition < boxSize /2
? preScrollPosition : preScrollPosition + boxSize;
_this = this;
clearInterval(scrollTimerHandle);
scrollTimerHandle = setTimeout(function() {
positionTimerHandle = setInterval(function(){
if (_this.scrollTop == newScrollPosition){
clearInterval(positionTimerHandle);
} else {
if (_this.scrollTop > newScrollPosition){
_this.scrollTop--;
} else {
_this.scrollTop++;
}
}
}, 5);
}, 700);
});
Cảm ơn tất cả sự giúp đỡ, tôi đã mất đi cách làm thế nào để thực hiện điều này và học được một thỏa thuận tốt ngày hôm nay.
Đây là một trong những khó khăn, bởi vì nếu tôi không nhầm, bạn chỉ kiểm tra vị trí cuộn * sau * cuộn xuất hiện. Điều đó có nghĩa, nếu bạn buộc phải cuộn theo từng bước (trong trường hợp này, chiều cao của các khối của bạn), sẽ có rất nhiều nói lắp khi vùng chứa cuộn vài pixel và sau đó nhảy lùi lại hoặc tiến lên. Bạn có thể loại bỏ toàn bộ thanh cuộn và cung cấp các nút của riêng bạn để cuộn vùng chứa theo mức mong muốn. – jackwanders
@kiranvj có hình thức cuối cùng của tôi, nó không phải là cách tôi hình dung khi tôi hỏi nhưng tôi thích điều này tốt hơn. Cảm ơn bạn đã giúp đỡ. – petervaz