JQuery 滚动 li id 到 div 顶部

标签 jquery html

我正在使用 JQuery 将选定的列表项滚动到 div 中的 View 中,其中溢出设置为滚动。以下代码工作正常,但它将选定的列表项滚动到屏幕顶部,而不是 #QuestionScroller div 的顶部。这使它在上面的内容下看不见。我添加了 75px 偏移量,但这并不理想,因为上面内容的高度可能会根据视口(viewport)大小而变化。那么如何使脚本滚动到 #QuestionScroller div 顶部而不是页面顶部呢?

$(window).load(function () {
    var contactTopPosition = $("#ListItemQuestion<%=Session["QuestionID"] %>").position().top - 75;
    $("#QuestionScroller").animate({ scrollTop: contactTopPosition },2500);
});

最佳答案

请参阅下面的代码。希望这对您有帮助。

var container = $('#QuestionScroller'),
    scrollTo = $('#ListItemQuestion');
    container.animate({scrollTop: scrollTo.offset().top - container.offset().top + 
                       container.scrollTop()});
#QuestionScroller {
    width: 200px;
    height: 70px;
    border: 1px solid blue;
    overflow: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="QuestionScroller">
    <ul>
        <li id='row_1'>111111</li>
        <li id='row_2'>222222</li>
        <li id='row_3'>333333</li>
        <li id='ListItemQuestion'>444444</li>
        <li id='row_5'>555555</li>
        <li id='row_6'>666666</li>
        <li id='row_7'>777777</li>
        <li id='row_8'>888888</li>
        <li id='row_9'>999999</li>
    </ul>
</div>

关于JQuery 滚动 li id 到 div 顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34068396/

相关文章:

javascript - 根据父级元素宽度而不是窗口 DOM 宽度触发响应

javascript - Android 版本无法在设备上运行?

html - CSS 选择器仅对表格内 td 的第一级进行样式设置

html - 将一个元素置于另一个元素的中心

jquery - 使用 Javascript/Jquery 和 Json 数据填充选择框选项

javascript - 单击时淡出,除非单击输入元素

javascript - 使用 JavaScript/jQuery 在鼠标悬停时显示元素的 ID

javascript - 如何使用 jquery 或 javascript 获取浏览器名称?

javascript - 在javascript中顺利预测鼠标光标的位置

jquery - 替换图像而不是文本不起作用