一个 批量 的 用户 建议选择html和body标签以实现跨浏览器兼容性,如下所示:
$('html, body').animate({ scrollTop: 0 }, callback);
如果你指望你的回调只运行一次,这可能会让你失望。它实际上会运行两次因为你选择了两个元素。
如果这对您来说是个问题,您可以这样做:
function scrollToTop(callback) { if ($('html').scrollTop()) { $('html').animate({ scrollTop: 0 }, callback); return; } $('body').animate({ scrollTop: 0 }, callback); }
这可行的原因在于Chrome $('html').scrollTop() 返回0,但不在其他浏览器中,如Firefox。
$('html').scrollTop()
如果您不希望在滚动条已位于顶部的情况下等待动画完成,请尝试以下操作:
function scrollToTop(callback) { if ($('html').scrollTop()) { $('html').animate({ scrollTop: 0 }, callback); return; } if ($('body').scrollTop()) { $('body').animate({ scrollTop: 0 }, callback); return; } callback(); }
$(document).scrollTop(0); 也有效。
$(document).scrollTop(0);
您可以简单地使用链接中的目标,例如#someid,其中#someid是div的id。
或者,您可以使用任何数量的滚动插件,使其更优雅。
http://plugins.jquery.com/project/ScrollTo 就是一个例子。
真奇怪:这个问题现在已经活跃了五年了,而且还没有动画JavaScript回答来动画滚动 所以你走了:
var scrollToTop = window.setInterval(function() { var pos = window.pageYOffset; if ( pos > 0 ) { window.scrollTo( 0, pos - 20 ); // how far to scroll on each step } else { window.clearInterval( scrollToTop ); } }, 16); // how fast to scroll (this equals roughly 60 fps)
如果你愿意,你可以将它包装在一个函数中并通过它调用它 onclick 属性。检查一下 的jsfiddle
onclick
注意:这是一个非常基本的解决方案,可能不是最高效的解决方案。这里有一个非常详细的例子: https://github.com/cferdinandi/smooth-scroll
所有这些建议都适用于各种情况。对于那些通过搜索找到此页面的人,也可以给予 这个 一试。 JQuery,没有插件,滚动到元素。
$('html, body').animate({ scrollTop: $("#elementID").offset().top }, 2000);
老人 #top 可以做到这一点
#top
document.location.href = "#top";
适用于FF,IE和Chrome
<script> $("a[href='#top']").click(function() { $("html, body").animate({ scrollTop: 0 }, "slow"); return false; }); </script>
在HTML中
<a href="#top">go top</a>
上述答案都不适用于SharePoint 2016。
它必须这样做: https://sharepoint.stackexchange.com/questions/195870/
var w = document.getElementById("s4-workspace"); w.scrollTop = 0;
的 这将有效: 强>
的 window.scrollTo(0, 0); 强>
window.scrollTo(0, 0);
你可以尝试在这个小提琴中使用JS http://jsfiddle.net/5bNmH/1/
在页脚中添加“转到顶部”按钮:
<footer> <hr /> <p>Just some basic footer text.</p> <!-- Go to top Button --> <a href="#" class="go-top">Go Top</a> </footer>
为什么不使用JQuery内置函数scrollTop:
$('html, body').scrollTop(0);//For scrolling to top $("body").scrollTop($("body")[0].scrollHeight);//For scrolling to bottom
简短而简单!
如果您不需要更改动画,那么您不需要使用任何特殊插件 - 我只使用本机JavaScript window.scrollTo方法 - 传入0,0会立即将页面滚动到左上角。
window.scrollTo(x-coord, y-coord);
参数
如果你想做平滑滚动,请试试这个:
$("a").click(function() { $("html, body").animate({ scrollTop: 0 }, "slow"); return false; });
另一个解决方案是JavaScript window.scrollTo方法:
window.scrollTo(x-value, y-value);
参数:
$(".scrolltop").click(function() { $("html, body").animate({ scrollTop: 0 }, "slow"); return false; });
.section{ height:400px; } .section1{ background-color: #333; } .section2{ background-color: red; } .section3{ background-color: yellow; } .section4{ background-color: green; } .scrolltop{ position:fixed; right:10px; bottom:10px; color:#fff; }
<html> <head> <title>Scroll top demo</title> <script src="https://code.jquery.com/jquery-3.3.1.js"></script> </head> <body> <div class="content-wrapper"> <div class="section section1"></div> <div class="section section2"></div> <div class="section section3"></div> <div class="section section4"></div> <a class="scrolltop">Scroll top</a> </div> </body> </html>
你不需要jQuery来做到这一点。一个标准的HTML标签就足够了......
<div id="jump_to_me"> blah blah blah </div> <a target="#jump_to_me">Click Here To Destroy The World!</a>
激活所有浏览器。祝好运
var process; var delay = 50; //milisecond scroll top var scrollPixel = 20; //pixel U want to change after milisecond //Fix Undefine pageofset when using IE 8 below; function getPapeYOfSet() { var yOfSet = (typeof (window.pageYOffset) === "number") ? window.pageYOffset : document.documentElement.scrollTop; return yOfSet; } function backToTop() { process = setInterval(function () { var yOfSet = getPapeYOfSet(); if (yOfSet === 0) { clearInterval(process); } else { window.scrollBy(0, -scrollPixel); } }, delay); }
的 试试这个滚动到顶部 强>
<script> $(document).ready(function(){ $(window).scrollTop(0); }); </script>
这个简单的解决方案可以本地工作,并实现平滑滚动到任何位置。
它避免使用锚链接(使用锚链接 # )在我看来,如果你想链接到一个部分,但在某些情况下不太舒服,特别是当指向顶部时可能会导致指向同一位置的两个不同的URL( http://www.example.org 和 http://www.example.org/# )。
#
放一个 ID 要滚动到的标记,例如您的第一个 部分 ,这回答了这个问题,但是 ID 可以放在页面的任何地方。
<body> <section id="top"> <!-- your content --> </section> <div id="another"><!-- more content --></div>
然后作为按钮,您可以使用链接,只需编辑 的onclick 属性与这样的代码。
<a onclick="document.getElementById('top').scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' })">Click me</a>
论证的地方 document.getElementById 是个 ID 单击后要滚动到的标记。
document.getElementById
试试这段代码:
$('html, body').animate({ scrollTop: $("div").offset().top }, time);
的 div =&gt; 强> 要在哪里移动滚动的Dom元素。
的 时间=&gt; 强> 毫秒,定义滚动的速度。
试试这个
<script> $(window).scrollTop(100); </script>
只需使用此脚本滚动到顶部直接。
<script> $(document).ready(function(){ $("button").click(function(){ ($('body').scrollTop(0)); }); }); </script>
function scrolltop() { var offset = 220; var duration = 500; jQuery(window).scroll(function() { if (jQuery(this).scrollTop() > offset) { jQuery('#back-to-top').fadeIn(duration); } else { jQuery('#back-to-top').fadeOut(duration); } }); jQuery('#back-to-top').click(function(event) { event.preventDefault(); jQuery('html, body').animate({scrollTop: 0}, duration); return false; }); }
更流畅的动画解决方案:
// this changes the scrolling behavior to "smooth" window.scrollTo({ top: 0, behavior: 'smooth' });
参考: https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo#Example
如果你不想平滑滚动,你可以在你启动它时立即作弊并停止平滑滚动动画......就像这样:
$(document).ready(function() { $("a[href='#top']").click(function() { $("html, body").animate({ scrollTop: 0 }, "1"); $('html, body').stop(true, true); //Anything else you want to do in the same action goes here return false; }); });
我不知道是否推荐/允许,但它的工作原理:)
你什么时候用这个?我不确定,但也许当你想用一次点击用Jquery动画一个东西,但做另一个没有动画的东西?即打开页面顶部的滑入式管理员登录面板,并立即跳到顶部查看它。
非jQuery解决方案/纯JavaScript:
document.body.scrollTop = document.documentElement.scrollTop = 0;
同 window.scrollTo(0, 0); 非常快 所以我尝试了Mark Ursino的例子,但在Chrome中没有任何反应 我发现了这个
$('.showPeriodMsgPopup').click(function(){ //window.scrollTo(0, 0); $('html').animate({scrollTop:0}, 'slow');//IE, FF $('body').animate({scrollTop:0}, 'slow');//chrome, don't know if Safari works $('.popupPeriod').fadeIn(1000, function(){ setTimeout(function(){$('.popupPeriod').fadeOut(2000);}, 3000); }); });
测试了所有3个浏览器并且它有效 我正在使用蓝图css 这是当客户点击“立即预订”按钮并且没有选择租借期间时,慢慢移动到日历所在的顶部并打开指向2个字段的对话框div,3秒后它会消失
平滑滚动,纯javascript:
(function smoothscroll(){ var currentScroll = document.documentElement.scrollTop || document.body.scrollTop; if (currentScroll > 0) { window.requestAnimationFrame(smoothscroll); window.scrollTo (0,currentScroll - (currentScroll/5)); } })();