jquery - 如何使用 jquery 自动滚动到目标 div?

标签 jquery html

如果我有这样的结构:

<div id="listofstuff">
<div class="anitem">
   <span class="itemname">Item1</span>
   <span class="itemdescruption">AboutItem1</span>
</div>
<div class="anitem">
   <span class="itemname">Item2</span>
   <span class="itemdescruption">AboutItem2</span>
</div>
<div class="anitem">
   <span class="itemname">Item3</span>
   <span class="itemdescruption">AboutItem3</span>
</div>
</div>

假设我继续这种模式,直到第 5 项...并且我想做到这一点,以便在加载页面时,它会搜索项目名称为“Item5”的 div,然后滚动到它以使其可见。假设 listofstuffdiv 的大小很小,因此在任何给定时间只显示 3 个项目,但由于 overflow:auto 存在,用户可以滚动。

我想做到这一点,以便 jquery 可以滚动到它找到的项目,这样它就可以看到,而无需用户向下滚动到 item5;。

最佳答案

请参阅此 fiddle :http://jsfiddle.net/pixelass/uaewc/2/

为此您不需要 scrollTo 插件..

jQuery

$(document).ready(function(){
    lastElementTop = $('#listofstuff .anitem:last-child').position().top ;
    scrollAmount = lastElementTop - 200 ;

$('#listofstuff').animate({scrollTop: scrollAmount},1000);
});

CSS

.anitem {
height:100px;
}

#listofstuff {

height:300px;
    overflow:auto;
}

多一点 Action 和变量 http://jsfiddle.net/pixelass/uaewc/5/


$(document).ready(function() {
    var wrapper = $('#listofstuff'),
    element = wrapper.find('.anitem'),
    lastElement = wrapper.find('.anitem:last-child'),
    lastElementTop = lastElement.position().top,
    elementsHeight = element.outerHeight(),
    scrollAmount = lastElementTop - 2 * elementsHeight;

    $('#listofstuff').animate({
        scrollTop: scrollAmount
    }, 1000, function() {
        lastElement.addClass('current-last');
    });
});

关于jquery - 如何使用 jquery 自动滚动到目标 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773405/

相关文章:

javascript - jQuery - 单击和按键事件的行为相同

javascript - 在Js中cookie html标签消失了

javascript - 查找子元素为空字符串的 li

php - 将按钮添加到 HTML 表中的行,并带有指向 URL 的链接,该 URL 包含该行中另一列的数据

html - 是否有一个 URL 参数可以使 URL 在特定命名的浏览器窗口中打开

html - 如何使列表中的元素符号点对齐

javascript - 我是否必须为每个页面创建一个新面板?

javascript - 为什么 deferred.when() 在完成回调中返回 promise ?

javascript - 如何突出显示 handsontable 的选定行和标题?

javascript - jQuery DataTables - 删除标签