为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

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

怎么解决?

正在回答

3 回答

http://img1.sycdn.imooc.com//57bac0ca0001a4aa14050749.jpg 。 。。

1 回复 有任何疑惑可以回复我~
#1

Chigga

好多地方没优化。。
2016-08-22 回复 有任何疑惑可以回复我~

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);

}



做个参考吧。有过渡。

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

0 回复 有任何疑惑可以回复我~
#1

Chigga

缩进都没看着好头疼。我上个图吧
2016-08-22 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
CSS3扁平化博客之文章页及常用组件
  • 参与学习       36307    人
  • 解答问题       54    个

又一波 CSS3扁平化博客

进入课程

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号