jat*_*jat 362 javascript jquery
考虑一下我有一个问题清单.当我点击第一个问题时,它会自动将我带到页面底部.
事实上,我知道这可以使用jQuery完成.
那么,你能给我一些文件或一些链接,我可以找到这个问题的答案吗?
编辑:需要滚动到页面底部的特定HTML 元素
Zhi*_*hao 723
jQuery没有必要.我从谷歌搜索获得的大多数顶级成绩给了我这样的答案:
window.scrollTo(0,document.body.scrollHeight);
Run Code Online (Sandbox Code Playgroud)
如果您有嵌套元素,则文档可能无法滚动.在这种情况下,您需要定位滚动的元素并使用它的滚动高度.
window.scrollTo(0,document.querySelector(".scrollingContainer").scrollHeight);
您可以将其与onclick您的问题事件联系起来(即<div onclick="ScrollToBottom()" ...).
您可以查看一些其他来源:
Tho*_*Tho 90
如果要将整个页面滚动到底部:
var scrollingElement = (document.scrollingElement || document.body);
scrollingElement.scrollTop = scrollingElement.scrollHeight;
Run Code Online (Sandbox Code Playgroud)
查看样品上的jsfiddle
如果要将元素滚动到底部:
function gotoBottom(id){
var element = document.getElementById(id);
element.scrollTop = element.scrollHeight - element.clientHeight;
}
Run Code Online (Sandbox Code Playgroud)
这就是它的工作原理:
参考:scrollTop,scrollHeight,clientHeight
更新:最新版本的Chrome(61+)和Firefox不支持滚动正文,请参阅:https://dev.opera.com/articles/fixing-the-scrolltop-bug/
shm*_*uli 50
香草JS实施:
element.scrollIntoView(false);
Run Code Online (Sandbox Code Playgroud)
https://developer.mozilla.org/en-US/docs/Web/API/element.scrollIntoView
小智 23
您可以使用它以动画格式向下浏览页面.
$('html,body').animate({scrollTop: document.body.scrollHeight},"fast");
Run Code Online (Sandbox Code Playgroud)
ash*_*awg 22
一个有趣的纯 CSS 替代方案:
display: flex;
flex-direction: column-reverse;
/* ...probably usually along with: */
overflow-y: scroll; /* or hidden or auto */
height: 100px; /* or whatever */
Run Code Online (Sandbox Code Playgroud)
它不是防弹的,但我发现它在几种情况下很有用。
文档:flex, flex-direction,overflow-y
var i=0, foo='Lorem Ipsum & foo in bar or blah ! on and'.split(' ');
setInterval(function(){demo.innerHTML+=foo[i++%foo.length]+' '},200)Run Code Online (Sandbox Code Playgroud)
#demo{ display:flex;
flex-direction:column-reverse;
overflow-y:scroll;
width:150px;
height:150px;
border:3px solid black; }
body{ font-family:arial,sans-serif;
font-size:15px; }Run Code Online (Sandbox Code Playgroud)
Autoscrolling demo:🐾
<div id='demo'></div>Run Code Online (Sandbox Code Playgroud)
Pix*_*ech 19
下面应该是跨浏览器解决方案.它已经在Chrome,Firefox,Safari和IE11上进行了测试
window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);
Run Code Online (Sandbox Code Playgroud)
window.scrollTo(0,document.body.scrollHeight); 不适用于Firefox,至少对于Firefox 37.0.2
TLJ*_*TLJ 16
一个衬垫平滑滚动到底部
window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: "smooth" });
Run Code Online (Sandbox Code Playgroud)
向上滚动只需设置top为0
NrN*_*ifi 11
您可以在任何需要调用它的地方使用此功能:
function scroll_to(div){
if (div.scrollTop < div.scrollHeight - div.clientHeight)
div.scrollTop += 10; // move down
}
Run Code Online (Sandbox Code Playgroud)
小智 11
你也可以用动画做到这一点,非常简单
$('html, body').animate({
scrollTop: $('footer').offset().top
//scrollTop: $('#your-id').offset().top
//scrollTop: $('.your-class').offset().top
}, 'slow');
Run Code Online (Sandbox Code Playgroud)
希望有所帮助,谢谢
<script>
function scrollToBottom() {
window.scrollTo(0, document.body.scrollHeight);
}
history.scrollRestoration = "manual";
window.onload = scrollToBottom;
</script>
Run Code Online (Sandbox Code Playgroud)
Chrome 等浏览器有一个内置预设,可以在刷新后记住您在页面上的位置。只是 awindow.onload不起作用,因为在您调用以下行之后,您的浏览器会自动将您滚动回刷新之前的位置:
window.scrollTo(0, document.body.scrollHeight);
Run Code Online (Sandbox Code Playgroud)
这就是为什么我们需要添加:
history.scrollRestoration = "manual";
Run Code Online (Sandbox Code Playgroud)
首先window.onload禁用该内置功能。
文档
window.onload: https: //developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onload
文档
window.scrollTo: https: //developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo
文档
history.scrollRestoration: https: //developer.mozilla.org/en-US/docs/Web/API/History/scrollRestoration
有时页面会滚动到按钮(例如在社交网络中),向下滚动到最后(页面的最终按钮)我使用此脚本:
var scrollInterval = setInterval(function() {
document.documentElement.scrollTop = document.documentElement.scrollHeight;
}, 50);
Run Code Online (Sandbox Code Playgroud)
如果你在浏览器的javascript控制台中,能够停止滚动可能会很有用,所以添加:
var stopScroll = function() { clearInterval(scrollInterval); };
Run Code Online (Sandbox Code Playgroud)
然后使用stopScroll();.
如果需要滚动到特定元素,请使用:
var element = document.querySelector(".element-selector");
element.scrollIntoView();
Run Code Online (Sandbox Code Playgroud)
或者用于自动滚动到特定元素的通用脚本(或停止页面滚动间隔):
var notChangedStepsCount = 0;
var scrollInterval = setInterval(function() {
var element = document.querySelector(".element-selector");
if (element) {
// element found
clearInterval(scrollInterval);
element.scrollIntoView();
} else if((document.documentElement.scrollTop + window.innerHeight) != document.documentElement.scrollHeight) {
// no element -> scrolling
notChangedStepsCount = 0;
document.documentElement.scrollTop = document.documentElement.scrollHeight;
} else if (notChangedStepsCount > 20) {
// no more space to scroll
clearInterval(scrollInterval);
} else {
// waiting for possible extension (autoload) of the page
notChangedStepsCount++;
}
}, 50);
Run Code Online (Sandbox Code Playgroud)
您可以将任何附加id到链接元素的引用属性href:
<a href="#myLink" id="myLink">
Click me
</a>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,当用户单击Click me页面底部时,导航将导航到Click me自身。
如果您想向下滚动到特定元素,这是一种简单的方法。
每当您想向下滚动时调用此函数。
function scrollDown() {
document.getElementById('scroll').scrollTop = document.getElementById('scroll').scrollHeight
}Run Code Online (Sandbox Code Playgroud)
ul{
height: 100px;
width: 200px;
overflow-y: scroll;
border: 1px solid #000;
}Run Code Online (Sandbox Code Playgroud)
<ul id='scroll'>
<li>Top Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Something Here</li>
<li>Bottom Here</li>
<li style="color: red">Bottom Here</li>
</ul>
<br />
<button onclick='scrollDown()'>Scroll Down</button>Run Code Online (Sandbox Code Playgroud)
这么多答案试图计算文档的高度。但它对我来说计算不正确。但是,这两种方法都有效:
查询
$('html,body').animate({scrollTop: 9999});
Run Code Online (Sandbox Code Playgroud)
或者只是js
window.scrollTo(0,9999);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
609249 次 |
| 最近记录: |