自动滚动到页面的底部

考虑一下我有一个问题清单。 当我点击第一个问题时,它会自动将我带到页面的底部。

事实上,我知道这可以使用jQuery来完成。

那么,你能给我提供一些文档或者一些链接,我可以find这个问题的答案吗?

编辑:需要滚动到页面底部的特定HTML 元素

jQuery是没有必要的。 我从谷歌search得到的最重要的结果给了我这个答案:

window.scrollTo(0,document.body.scrollHeight); 

如果您有嵌套的元素,文档可能不会滚动。 在这种情况下,您需要定位滚动并使用滚动高度的元素。

window.scrollTo(0,document.querySelector(".scrollingContainer").scrollHeight);

你可以把它绑定到你的问题的onclick事件(即<div onclick="ScrollToBottom()" ... )。

一些额外的来源,你可以看看:

如果您想将整个页面滚动到底部:

 document.body.scrollTop = document.body.scrollHeight; 

请参阅JSFiddle上的示例

如果你想滚动一个元素到底部:

 function gotoBottom(id){ var element = document.getElementById(id); element.scrollTop = element.scrollHeight - element.clientHeight; } 

这就是它的工作原理:

在这里输入图像说明

参考: scrollTop , scrollHeight , clientHeight

香草JS执行:

 element.scrollIntoView(false); 

https://developer.mozilla.org/en-US/docs/Web/API/element.scrollIntoView

你可以在需要调用的地方使用这个函数:

 function scroll_to(div){ if (div.scrollTop < div.scrollHeight - div.clientHeight) div.scrollTop += 10; // move down } 

jquery.com:滚动到

你也可以用animation来做到这一点,它非常简单

 $('html, body').animate({ scrollTop: $('footer').offset().top //scrollTop: $('#your-id').offset().top //scrollTop: $('.your-class').offset().top }, 'slow'); 

希望有所帮助,谢谢

下面应该是跨浏览器的解决scheme。 已经在Chrome,Firefox,Safari和IE11上进行了testing

 window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight); 

window.scrollTo(0,document.body.scrollHeight); 不适用于Firefox,至less适用于Firefox 37.0.2

你可以使用这个以animation格式下载页面。

 $('html,body').animate({scrollTop: document.body.scrollHeight},"fast"); 

有时候,页面会滚动到buttom(例如在社交networking中),向下滚动到页面的最后(我最终使用这个脚本)我使用这个脚本:

 var scrollInterval = setInterval(function() { document.body.scrollTop = document.body.scrollHeight; }, 50); 

如果你在浏览器的JavaScript控制台,它可能是有用的,能够停止滚动,所以添加:

 var stopScroll = function() { clearInterval(scrollInterval); }; 

然后使用stopScroll();

如果您需要滚动到特定元素,请使用:

 var element = document.querySelector(".element-selector"); element.scrollIntoView(); 

或自动滚动到特定元素(或停止页面滚动间隔)的通用脚本:

 var notChangedStepsCount = 0; var scrollInterval = setInterval(function() { var element = document.querySelector(".element-selector"); if (element) { // element found clearInterval(scrollInterval); element.scrollIntoView(); } else if((document.body.scrollTop + window.innerHeight) != document.body.scrollHeight) { // no element -> scrolling notChangedStepsCount = 0; document.body.scrollTop = document.body.scrollHeight; } else if (notChangedStepsCount > 20) { // no more space to scroll clearInterval(scrollInterval); } else { // waiting for possible extension (autoload) of the page notChangedStepsCount++; } }, 50); 

你可以试试Gentle Anchors一个不错的javascript插件。

例:

 function SomeFunction() { // your code // Pass an id attribute to scroll to. The # is required Gentle_Anchors.Setup('#destination'); // maybe some more code } 

兼容性testing:

  • Mac Firefox,Safari,Opera
  • Windows Firefox,Opera,Safari,Internet Explorer 5.55以上
  • Linux未经testing,但至less应该与Firefox的罚款

这是我的解决scheme:

  //**** scroll to bottom if at bottom function scrollbottom() { if (typeof(scr1)!='undefined') clearTimeout(scr1) var scrollTop = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop; var scrollHeight = (document.documentElement && document.documentElement.scrollHeight) || document.body.scrollHeight; if((scrollTop + window.innerHeight) >= scrollHeight-50) window.scrollTo(0,scrollHeight+50) scr1=setTimeout(function(){scrollbottom()},200) } scr1=setTimeout(function(){scrollbottom()},200) 

晚会,但这里有一些简单的JavaScript的代码来滚动任何元素的底部:

 function scrollToBottom(e) { e.scrollTop = e.scrollHeight - e.getBoundingClientRect().height; } 

你可以附加任何id到链接元素的引用属性href

 <a href="#myLink" id="myLink"> Click me </a> 

在上面的例子中,当用户点击Click me页面底部的Click me ,导航导航到Click me自己。

要在Selenium中向下滚动,请使用以下代码:

直到底部下拉,滚动到页面的高度。 使用下面的JavaScript代码,在JavaScript和React中都可以正常工作。

 JavascriptExecutor jse = (JavascriptExecutor) driver; // (driver is your browser webdriver object) jse.executeScript("window.scrollBy(0,document.body.scrollHeight || document.documentElement.scrollHeight)", "");