Kin*_*tor 1511 javascript scroll
我__CODE__
在页面上有一个,当按下这个按钮时,__CODE__
使用jQuery显示一个隐藏.
如何使用该函数中的JavaScript/jQuery命令滚动到页面顶部?即使滚动条立即跳到顶部也是可取的.我不是在寻找一个平滑的滚动.
dan*_*lmb 2061
如果您不需要更改动画,那么您不需要使用任何特殊插件 - 我只使用本机JavaScript window.scrollTo方法 - 传入0,0会立即将页面滚动到左上角.
window.scrollTo(x-coord, y-coord);
Run Code Online (Sandbox Code Playgroud)
参数
Mar*_*ino 1314
如果你想要平滑滚动,尝试这样的事情:
$("a[href='#top']").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
Run Code Online (Sandbox Code Playgroud)
这将采用任何<a>
标签,href="#top"
并使其平滑滚动到顶部.
meh*_*ood 170
试试这个滚动到顶部
<script>
$(document).ready(function(){
$(window).scrollTop(0);
});
</script>
Run Code Online (Sandbox Code Playgroud)
Mat*_*hew 101
你不需要jQuery来做到这一点.一个标准的HTML标签就足够了......
<div id="jump_to_me">
blah blah blah
</div>
<a target="#jump_to_me">Click Here To Destroy The World!</a>
Run Code Online (Sandbox Code Playgroud)
Gan*_*ame 91
更流畅的动画解决方案:
// this changes the scrolling behavior to "smooth"
window.scrollTo({ top: 0, behavior: 'smooth' });
Run Code Online (Sandbox Code Playgroud)
参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo#Example
D.A*_*der 61
所有这些建议都适用于各种情况.对于那些谁通过搜索找到这个网页,还可以给这个一试.JQuery,没有插件,滚动到元素.
$('html, body').animate({
scrollTop: $("#elementID").offset().top
}, 2000);
Run Code Online (Sandbox Code Playgroud)
wak*_*neo 40
平滑滚动,纯javascript:
(function smoothscroll(){
var currentScroll = document.documentElement.scrollTop || document.body.scrollTop;
if (currentScroll > 0) {
window.requestAnimationFrame(smoothscroll);
window.scrollTo (0,currentScroll - (currentScroll/5));
}
})();
Run Code Online (Sandbox Code Playgroud)
M K*_*aei 36
用动画滚动到页面顶部:
window.scrollTo({ top: 0, behavior: 'smooth' });
Run Code Online (Sandbox Code Playgroud)
小智 28
<script>
$("a[href='#top']").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
</script>
Run Code Online (Sandbox Code Playgroud)
在HTML中
<a href="#top">go top</a>
Run Code Online (Sandbox Code Playgroud)
小智 27
如果你想做平滑滚动,请试试这个:
$("a").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是JavaScript window.scrollTo方法:
window.scrollTo(x-value, y-value);
Run Code Online (Sandbox Code Playgroud)
参数:
AvL*_*AvL 25
真的很奇怪:这个问题现在已经活跃了五年了,仍然没有香草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)
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以将其包装在一个函数中并通过该onclick
属性调用它.检查这个jsfiddle
注意:这是一个非常基本的解决方案,可能不是最高效的解决方案.可以在这里找到一个非常详细的例子:https://github.com/cferdinandi/smooth-scroll
小智 24
因为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);
});
});
Run Code Online (Sandbox Code Playgroud)
测试了所有3个浏览器,它工作
我正在使用蓝图css
这是当客户点击"立即预订"按钮并且没有选择租赁期间时,慢慢移动到日历所在的顶部并打开指向对话框div 2个字段,3秒后消失
Kam*_*esh 22
<script>
$(function(){
var scroll_pos=(0);
$('html, body').animate({scrollTop:(scroll_pos)}, '2000');
});
</script>
Run Code Online (Sandbox Code Playgroud)
编辑:
$('html, body').animate({scrollTop:(scroll_pos)}, 2000);
Run Code Online (Sandbox Code Playgroud)
Dav*_*edy 22
一个很大 的 用户推荐跨浏览器兼容性选择HTML和body标签,就像这样:
$('html, body').animate({ scrollTop: 0 }, callback);
Run Code Online (Sandbox Code Playgroud)
如果你指望你的回调只运行一次,这可能会让你失望.它实际上会运行两次因为你选择了两个元素.
如果这对您来说是个问题,您可以这样做:
function scrollToTop(callback) {
if ($('html').scrollTop()) {
$('html').animate({ scrollTop: 0 }, callback);
return;
}
$('body').animate({ scrollTop: 0 }, callback);
}
Run Code Online (Sandbox Code Playgroud)
这可行的原因是Chrome $('html').scrollTop()
返回0,但在Firefox等其他浏览器中则不然.
如果您不希望在滚动条已位于顶部的情况下等待动画完成,请尝试以下操作:
function scrollToTop(callback) {
if ($('html').scrollTop()) {
$('html').animate({ scrollTop: 0 }, callback);
return;
}
if ($('body').scrollTop()) {
$('body').animate({ scrollTop: 0 }, callback);
return;
}
callback();
}
Run Code Online (Sandbox Code Playgroud)
pol*_*ata 18
老人#top
可以做到这一点
document.location.href = "#top";
Run Code Online (Sandbox Code Playgroud)
适用于FF,IE和Chrome
Har*_*san 14
$(document).scrollTop(0);
也有效.
小智 14
$(".scrolltop").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
Run Code Online (Sandbox Code Playgroud)
.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;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
tfo*_*ont 13
非jQuery解决方案/纯JavaScript:
document.body.scrollTop = document.documentElement.scrollTop = 0;
Run Code Online (Sandbox Code Playgroud)
Sma*_*lns 12
TypeScript 中的等效解决方案可能如下
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
Run Code Online (Sandbox Code Playgroud)
Was*_*Ali 10
试试这段代码:
$('html, body').animate({
scrollTop: $("div").offset().top
}, time);
Run Code Online (Sandbox Code Playgroud)
div => Dom元素,您想要移动滚动.
time =>毫秒,定义滚动的速度.
Sae*_*and 10
纯 JavaScript 解决方案:
function scrollToTop() {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
Run Code Online (Sandbox Code Playgroud)
我在Codepen上写了一个动画解决方案
此外,您可以尝试使用 CSSscroll-behavior: smooth
属性的另一种解决方案。
html {
scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
为什么不使用JQuery内置函数scrollTop:
$('html, body').scrollTop(0);//For scrolling to top
$("body").scrollTop($("body")[0].scrollHeight);//For scrolling to bottom
Run Code Online (Sandbox Code Playgroud)
简短而简单!
小智 8
只需使用此脚本滚动到顶部直接.
<script>
$(document).ready(function(){
$("button").click(function(){
($('body').scrollTop(0));
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
如果你不想平滑滚动,你可以在你启动它时立即作弊并停止平滑滚动动画......就像这样:
$(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;
});
});
Run Code Online (Sandbox Code Playgroud)
我不知道是否推荐/允许,但它的工作原理:)
你什么时候用这个?我不确定,但也许当你想用一次点击用Jquery动画一个东西,但做另一个没有动画的东西?即打开页面顶部的滑入式管理员登录面板,并立即跳到顶部查看它.
你不需要JQuery.只需你可以调用脚本
window.location = '#'
Run Code Online (Sandbox Code Playgroud)
点击"转到顶部"按钮
示例演示:
PS:当你使用像angularjs这样的现代库时,不要使用这种方法.这可能会破坏URL hashbang.
使用纯Javascript平滑滚动,无需jQuery
// Get the btn
let topBtn = document.querySelector('.top-btn')
// On Click, Scroll to the page's top
topBtn.onclick = () => window.scrollTo({ top: 0, behavior: 'smooth'}) // Remove behavior: 'smooth' if you don't want smooth scrolling
// On scroll, Show/Hide the btn
window.onscroll = () => window.scrollY > 500 ? topBtn.style.display = 'block' : topBtn.style.display = 'none'
Run Code Online (Sandbox Code Playgroud)
body {
background-color: #111;
height:5000px;
}
.top-btn {
all:unset;
position: fixed;
right: 20px;
bottom: 20px;
cursor: pointer;
font: bold 2rem monospace;
color:white;
display: none;
}
Run Code Online (Sandbox Code Playgroud)
<button class="top-btn"></button>
Run Code Online (Sandbox Code Playgroud)
这个简单的解决方案可以原生工作,并实现平滑滚动到任何位置.
它避免使用锚链接(那些#
),在我看来,如果你想链接到一个部分,但在某些情况下不太舒服,特别是当指向顶部时可能导致两个不同的URL指向相同的位置(http://www.example.org和http://www.example.org/#).
将id添加到要滚动到的标记中,例如您的第一部分,它会回答此问题,但ID可以放在页面的任何位置.
<body>
<section id="top">
<!-- your content -->
</section>
<div id="another"><!-- more content --></div>
Run Code Online (Sandbox Code Playgroud)
然后作为按钮,您可以使用链接,只需使用这样的代码编辑onclick属性.
<a onclick="document.getElementById('top').scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' })">Click me</a>
Run Code Online (Sandbox Code Playgroud)
其中参数document.getElementById
是您要在单击后滚动到的标记的ID.
您可以简单地使用链接中的目标,例如#someid,其中#someid是div的id.
或者,您可以使用任何数量的滚动插件,使其更优雅.
http://plugins.jquery.com/project/ScrollTo就是一个例子.
上述答案均不适用于 SharePoint 2016。
必须这样做: https: //sharepoint.stackexchange.com/questions/195870/
var w = document.getElementById("s4-workspace");
w.scrollTop = 0;
Run Code Online (Sandbox Code Playgroud)
scrollTo
:function scroll() {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
}
Run Code Online (Sandbox Code Playgroud)
<button onclick="scroll">Scroll</button>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1596829 次 |
最近记录: |