美文网首页
回到顶部

回到顶部

作者: 小小小白菜呀 | 来源:发表于2017-10-10 15:29 被阅读0次

经过百度与stackoverflow
4年前还有很多quirks模式的时候 原因是这样的

Firefox & IE 支持对html的scroll 部分webkit 支持 body 的scroll ( 360 极速模式实验成功 )
而在老的浏览器中, 打开一个空白页面,观察浏览器右侧,会发现IE浏览器会有一段滚动条,而Firefox浏览器下没有
直至body scrollTop 被废弃, 详见w3c标准

scrollTop ( 距顶部滚动距离 ) 是有滚动条的html ( 或其他元素 ) 才有的

body is not potentially scrollable 不可能滚动
当然, 可以动手给body 加个 overflow: scroll , 或者给html 加个 hidden

所以 回到顶部中 animate 对 body 进行 scrollTop属性, 自然不行

在jquery的github和官网上, 也有类似的issue
$( "html, body" ) 的兼容性写法还是很好的

唯一的缺点是会造成两次回调
$( "html, body" ).animate({scrollTop:0}, 500, function() { 
   alert("Finished animating"); // 弹出两次
});

但是可以用promise来解决这个问题

$( "html, body" ).animate({ scrollTop: 0 }, 100)
  .promise().then(function() {
    console.log("runs once!")
  });

当然如果不要动画效果就更简单了, 原生或者jquery 都可以

$( document ).scrollTop( 500 );
window.scrollTo(0,0) 
document.body.scrollTop = document.documentElement.scrollTop = 0;
document.body.scrollIntoView();

最后配个实验图

body scrollTop 始终为0

相关文章

  • js 返回页面顶部(动画)

    js 返回到页面顶部,含有渐变或者动画效果 点击返回顶部按钮,页面逐渐向上回到顶部: js 返回到页面顶部,直接返...

  • 回到顶部

    经过百度与stackoverflow4年前还有很多quirks模式的时候 原因是这样的 Firefox & IE...

  • 回到顶部

    首先来下简易的css和html布局 其中图片: 接下来js 这个时候我们console.log(ispeed),发...

  • 回到顶部

  • 回到顶部

    首先提到回到顶部我们就想到的是a标签锚点跳转 a标签返回顶部的话会产生改变路由的问题每次用户点击返回顶部的话是可以...

  • 回到顶部

  • 回到顶部

    方法1 方法2

  • 回到顶部

  • 回到顶部

    toTop(){ let timer = null; cancelAnimationFrame(timer);...

  • RecyclerView滑动监听

    RecyclerView一键回到顶部 布局 设置一键回到顶部按钮的点击事件 设置回到顶部按钮的显示隐藏 方式1: ...

网友评论

      本文标题:回到顶部

      本文链接:https://www.haomeiwen.com/subject/obrgextx.html