打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
移动端常见问题(动画演示)

移动端动画

 

 红色勾勾代表强烈推荐

 

transition实现动画案例:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>移动端动画</title>    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">    <style>        *{padding:0;margin:0;}        .box{width:100px;height: 100px;background-color: pink;transition:transform 1s;}    </style></head><body>    <button id="btn">start</button>    <div class="box" id="box"></div>    <script>        var btn=document.getElementById("btn"),            box=document.getElementById("box"),            dest=window.innerWidth-100;//移动的距离            btn.addEventListener("click",function(){                box.style.transform="translate3d("+dest+"px,0,0)";            },false);        </script></body></html>

 

 也可以提取成函数的写法:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>移动端动画</title>    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">    <style>        *{padding:0;margin:0;}        .box{width:100px;height: 100px;background-color: pink;transition:transform 1s;}    </style></head><body>    <button id="btn">start</button>    <div class="box" id="box"></div>    <script>        var btn=document.getElementById("btn"),            box=document.getElementById("box"),            dest=window.innerWidth-100;//移动的距离            btn.addEventListener("click",function(){                move(box,dest);            },false);                function move(el,pos){                el.style.transform="translate3d("+pos+"px,0,0)";            }    </script></body></html>

 

animation动画推荐一个animation库,animation.js  https://daneden.github.io/animate.css/

可以查看各种动画的样式:

 

 

一般情况下推荐使用css3的transition和animation来完成动画,如果不能满足需求,可以考虑js的requestAnimationFrame

不做css动画时,记得一定要去掉transition属性

requestAnimationFrame的特点是:调用一次只执行一帧;如果想要持续执行,就需要递归。
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>移动端动画</title>    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">    <style>        *{padding:0;margin:0;}        .box{width:100px;height: 100px;background-color: pink;}    </style></head><body>    <button id="btn">start</button>    <div class="box" id="box"></div>    <script>        //requestAnimationFrame的兼容性处理            var requestAnimationFrame=window.requestAnimationFrame||        window.webkitRequestAnimationFrame||        window.mozRequestAnimationFrame||        window.msRequestAnimationFrame||        window.oRequestAnimationFrame||        function(fn){            setTimeout(fn,16);        }        var btn=document.getElementById("btn"),            box=document.getElementById("box"),            dest=window.innerWidth-100,//移动的距离            speed=1,            pos=0;        btn.addEventListener("click",function(){            requestAnimationFrame(step);        },false);            function move(el,pos){            el.style.transform="translate3d("+pos+"px,0,0)";        }        function step(){            if(pos<dest){                //递归                pos+=speed;                move(box,pos);                requestAnimationFrame(step);            }else{                pos=dest;                move(box,pos);            }        }    </script></body></html>

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CSS类的操作
CSDN阅读更多:实现原理
ArtDialog简单使用示例
javascript日历控件——纯javascript版
原生JS实现简单的汇率转换问题
用Ueditor为Asp.net mvc打造可视化HTML编辑器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服