我正在使用 scrollTo 插件滚动到某些标题。问题它只会以小增量向上滚动,这取决于浏览器窗口的高度。它似乎无法识别我正在使用的 id。
单击此处查看页面,您需要滚动到页面底部并用两根手指选择项目。您需要手动向下滚动并单击右侧的链接才能看到上述行为(抱歉有点复杂)。
我正在使用 scrollTo 插件滚动到某些标题。问题它只会以小增量向上滚动,这取决于浏览器窗口的高度。它似乎无法识别我正在使用的 id。
单击此处查看页面,您需要滚动到页面底部并用两根手指选择项目。您需要手动向下滚动并单击右侧的链接才能看到上述行为(抱歉有点复杂)。
无需为此使用插件。
试试下面的代码 -
$('html').animate({
scrollTop: $('#id where you want to scroll').offset().top
}, 2000);
我用这个小片段来scolling
/// <summary>
/// Scrolls the page to a single matched element.
/// Limitations: The document can only scroll a maximum of it's height. If an element is at the bottom of a page with nothing
/// below it then it cannot move that element to the top of the page as nothing exists to fill the space.
/// </summary>
/// <param name="target" type="String">
/// The element to scroll to
/// </param>
/// <param name="padding" type="Integer">
/// The padding to add to the scrolling destination. Negative values reduce the scrolling distance.
/// </param>
/// <param name="speed" type="Integer">
/// The the speed at which to perform the animation. Positive integers only.
/// </param>
function scrollTo(target, padding, speed) {
// Define our variables.
var target_offset, target_top;
// Fix our value to add the selector.
if (target.indexOf("#") == -1) {
target = "#" + target;
}
// Get the top offset of the target anchor and add any necessarry padding.
target_offset = $(target).offset();
target_top = target_offset.top + padding;
// Scroll to that anchor by setting the body to scroll to the anchor top.
$("html").animate({ scrollTop: target_top }, speed);
}
谢谢你们俩的回答。我发现问题是我用 CSS 隐藏了我的名称标签的父 div 并用 JS 显示。这导致浏览器不知道如何定位名称标签(或类似的东西)。我从 CSS 中删除了 display:none,瞧!