原生js怎么实现1s返回顶部的过渡?

来源:2-3 CSS3扁平化博客-返回顶部

冰冰冰冰冰3515066

2016-08-12 11:58

back.addEventListener("click",function(){
     document.body.scrollTop="0px";
     });

而设置了body的样式  transition:all 1s;不起作用

是不是因为scrollTop不属于元素的样式的属性啊

怎么解决?

写回答 关注

3回答

  • Chigga
    2016-08-22 17:07:37

    http://img.mukewang.com/57bac0ca0001a4aa14050749.jpg 。 。。

    Chigga

    好多地方没优化。。

    2016-08-22 17:14:16

    共 1 条回复 >

  • Chigga
    2016-08-22 17:05:31

    window.onload=function(){

    var menubar=document.getElementById("menubar");

    var more=document.getElementById("more");

    var owrap=document.getElementById("owrap");

    var top=document.getElementById("backtop");

    //侧边栏

    more.onclick=function(){

    menubar.style.right="0px";

    owrap.style.display="block";

    }

    owrap.onclick=function(){

    menubar.style.right="";

    owrap.style.display="none";

    }

    //返回顶部

    function backTop(btn){

    window.onscroll=set;

    function set(){

    if ((document.documentElement.scrollTop||document.body.scrollTop)>600) {

    btn.style.display=(document.documentElement.scrollTop||document.body.scrollTop)? "block":"none";

    }else{

    btn.style.display="none";

    }

    }

    btn.onclick=function(){

    btn.style.display="none";

    window.onscroll=null;

    this.timer=setInterval(function(){

    if(document.body.scrollTop){

    document.body.scrollTop -= Math.ceil(document.body.scrollTop * 0.1);

    }else{

    document.documentElement.scrollTop -= Math.ceil(document.documentElement.scrollTop * 0.1);

    }

    if (document.body.scrollTop==0) clearInterval(btn.timer), window.onscroll = set, document.body.scrollTop = 0;

    },20);

    }

    }

    backTop(top);

    }



    做个参考吧。有过渡。

    每多少毫秒执行一次就可以实现过渡效果。

    Chigga

    缩进都没看着好头疼。我上个图吧

    2016-08-22 17:06:33

    共 1 条回复 >

  • 哈里至尊
    2016-08-16 09:44:57

    transition:all 1s  我也头一回看到老师用。原生js实现1s返回顶部,可以用定时器setTimeout来做 (自己写一个函数来调节scrollTop的值就可以实现,过度效果就取决于你写的函数)

CSS3扁平化博客之文章页及常用组件

又一波 CSS3扁平化博客

36303 学习 · 54 问题

查看课程