【问题标题】:Scroll is moving too far滚动移动太远
【发布时间】:2015-08-19 09:38:58
【问题描述】:

检查此fiddle

假设滚动容器内的第一个可见元素是#1 元素。在上面的小提琴中,我可以看到#1#2#3#4 元素。如果我是对的,如果我滚动一次,我应该能够看到接下来的 4 个元素,即#5#6#7#8。但是当我通过鼠标滚轮滚动一次时,滚动容器正在移动到 #15 元素。

请帮忙。

// update content every second
function addChild() {
    var el = $('<div></div>').html('#' + $('#testDiv').children().length)
        .css({
        padding: '3px',
        border: '1px solid #ccc',
        margin: '5px'
    });
    $('#testDiv').append(el);

    // update slimscroll every time content changes
    $('#testDiv').slimscroll();
}

$('#testDiv').slimscroll({
    alwaysVisible: true,
    height: 150
});

for (var i = 0; i < 300; i++) {
    addChild();
}

PS:我在github上填写了一个问题

【问题讨论】:

  • 呃.. 对我来说很好。
  • @PraveenKumar 我在 chrome 上。跳到我#15 元素。
  • 在 slimscroll 中设置属性 'wheelStep:5' 应该可以解决这个问题。 '
  • @WisdmLabs 是正确的,我想我尝试了 wheelStep:5 并且工作正常
  • @WisdmLabs 感谢它的工作原理。但我不能说内容总是很大。例如,如果容器中只有 30 个项目,则滚动变慢。

标签: javascript jquery slimscroll


【解决方案1】:

检查一下:

// update content every second
function addChild() {
    var el = $('<div></div>').html('#' + $('#testDiv').children().length)
        .css({
        padding: '3px',
        border: '1px solid #ccc',
        margin: '5px'
    });
    $('#testDiv').append(el);

    // update slimscroll every time content changes
    $('#testDiv').slimscroll();
}


for (var i = 0; i < 300; i++) {
    addChild();
}

$('#testDiv').slimscroll({
    alwaysVisible: true,
    height: 150
});

JSFiddle

我刚刚加载了slimscroll之前的div

【讨论】:

  • 谢谢,你让我意识到我的项目中的内容是通过异步的 ajax url 来的,并且代码在深林中。我认为除了找到需要添加此 slimscroll 函数的 ajax 回调函数之外别无他法。
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 2013-04-29
相关资源
最近更新 更多