回顶部总结二(动画)
来源:互联网 发布:程序员翻墙干什么 编辑:程序博客网 时间:2024/06/06 03:36
关于回顶部加动画效果
动画有两种:一种是CSS动画,需要有样式变化配合transition;一种是javascript动画,使用定时器来实现
主要实现javascript动画即定时器
1.setInterval、2.setTimeout和3.requestAnimationFrame这三种可以
setTimeou
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;} #box{height:2000px;overflow: auto;background: red;} #top{width:80px;height:80px;line-height: 80px; background: #000;opacity: 0.8;color: #fff;text-align: center;font-size: 20px; position: fixed;right:10px;bottom:50px;z-index: 2;cursor: pointer;} #top:hover{opacity: 1;} </style></head><body><div id="box"></div><div id="top" onclick="totop()">回顶部</div><script> //解决兼容性 function getscrolltop(){ var scrolltop=window.pageXOffset || document.documentElement.scrollTop || document.body.scrollTop; return scrolltop; } window.onload=function(){ var top=document.getElementById('top') var box=document.getElementById('box') top.style.display="none" window.onscroll=function(){ x=getscrolltop(); if(x>=document.documentElement.clientHeight){ top.style.display="block"; }else{ document.getElementById('top').style.display="none"; } } } function totop(){ x-=10; document.documentElement.scrollTop=document.body.scrollTop=x; jsq=setTimeout(totop,1) if(x<=0){ clearTimeout(jsq) } }</script></body></html>
requestAnimationFrame
requestAnimationFrame的用法与settimeout相似,只是不需要设置时间间 隔,它使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前 调用。它返回一个整数,表示定时器的编号,这个值可以传递给cancelAni mationFrame用于取消这个函数的执行
requestAnimationFrame scrollTop
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;} #box{height:2000px;overflow: auto;background: red;} #top{width:80px;height:80px;line-height: 80px; background: #000;opacity: 0.8;color: #fff;text-align: center;font-size: 20px; position: fixed;right:10px;bottom:50px;z-index: 2;cursor: pointer;} #top:hover{opacity: 1;} </style></head><body><div id="box"></div><div id="top" onclick="totop()">回顶部</div><script> function getscrolltop(){ var scrolltop=window.pageXOffset || document.documentElement.scrollTop || document.body.scrollTop; return scrolltop; } function totop(){ var timer=requestAnimationFrame(function fun(){ var x=getscrolltop(); if(x>0){ x-=50; document.documentElement.scrollTop=document.body.scrollTop=x timer=requestAnimationFrame(fun) }else{ cancelRequestAnimationFrame(timer) } }) }</script></body></html>
requestAnimationFrame scrollTo/scrollBy
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;} #box{height:2000px;overflow: auto;background: red;} #top{width:80px;height:80px;line-height: 80px; background: #000;opacity: 0.8;color: #fff;text-align: center;font-size: 20px; position: fixed;right:10px;bottom:50px;z-index: 2;cursor: pointer;} #top:hover{opacity: 1;} </style></head><body><div id="box"></div><div id="top" onclick="toTop()">回顶部</div><script> function getscrolltop(){ var scrolltop=window.pageXOffset || document.documentElement.scrollTop || document.body.scrollTop; return scrolltop; } function toTop(){ var timer=requestAnimationFrame(function fun(){ var x=getscrolltop(); if(x>0){// scrollTo(0,x-50); scrollBy(0,-50) timer=requestAnimationFrame(fun) }else{ cancelRequestAnimationFrame(timer) } }) //scrollTo() 方法可把内容滚动到指定的坐标。 }</script></body></html>
阅读全文
0 0
- 回顶部总结二(动画)
- 回顶部总结一
- 动画总结二
- android 动画 从view顶部退出、进入(系列动画)
- 仿京东顶部加载动画
- 仿京东顶部加载动画
- Android 顶部切换实现(二)
- Android动画学习总结(二)-------view animation
- Unity动画插件DoTween使用总结(二)
- JS(JQ)实现带动画的回到顶部效果
- JQ实现点击返回顶部(有动画过渡)
- 动画之补间动画详细总结(二)Interpolator插值器
- android开发动画总结二(frame animation)
- Android 动画(二)
- iOS 动画(二)
- 动画(二)
- 属性动画(二)
- AngularJS动画(二)
- 橙光游戏2.17 0614 版本操作笔记
- 关于微信获取access_token接口,返回值为-1000的问题
- 手把手简易实现shellcode及详解
- 基本概述,系统划分,中断简介
- 010. Spring Bean引用关系
- 回顶部总结二(动画)
- POJ 1816 Wild Words 笔记
- 投资的意义和分类
- Android ADB命令大全
- 多线程:初识同步代码块和同步函数
- 安卓开发入门之主题与样式必看知识点(翻译)
- C++ Java学习路线
- Git学习笔记
- Centos下安装Mysql