这篇文章主要讲解了JS如何实现滑稽笑脸运动效果,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
效果演示:
(就这玩意儿,差点写崩了...)
代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>滑稽笑脸运动</title> <meta name="author" content="marinerzp"> <style> *{padding: 0;margin: 0;} html,body{ width: 100%; height: 100%; } #main{ width: 100px; height: 100px; border-radius: 50%; background:url(images/1.jpg) 0 0/100px 100px; position: absolute; left: 0; top: 0; z-index: 3; } .show{ width: 50px; height: 50px; border-radius: 50%; background-color: rgb(239, 187, 101); position: absolute; animation: disappear 1.2s ; animation-fill-mode: forwards; } @keyframes disappear{ 0%{ opacity: 1; transform:scale(1); } 100%{ opacity: 0; transform:scale(0); } } </style> </head> <body> <div id="main"> </div> <script> let Omain=document.querySelector('#main'); let MaxLeft=window.innerWidth-Omain.offsetWidth; let MaxTop=window.innerHeight-Omain.offsetHeight; window.οnresize=function(){//监听窗口大小改变事件 MaxLeft=window.innerWidth-Omain.offsetWidth; MaxTop=window.innerHeight-Omain.offsetHeight; }; /* 水平方向上:以向右为正方向 竖直方向上:以向下为正方向 */ let Vx=6;//3px/s let Vy=9;//4px/s let X=0,Y=0; ~~function move(){ X+=Vx; Y+=Vy; if (Y>=MaxTop) { Y=MaxTop; Vy=-Vy; } if (Y<=0) { Y=0; Vy=-Vy; } if (X>=MaxLeft) { X=MaxLeft; Vx=-Vx; } if (X<=0) { X=0; Vx=-Vx; } Omain.style.left=`${X}px`; Omain.style.top=`${Y}px`; createTail(X,Y);//生成拖尾 requestAnimationFrame(move); }(); function createTail(X,Y){ let node=document.createElement('p'); node.classList.add('show'); node.style.cssText=`left:${X+20}px;top:${Y+20}px`; document.body.appendChild(node); setTimeout(()=>{ document.body.removeChild(node); node=null; },1200); } </script> </body> </html>
看完上述内容,是不是对JS如何实现滑稽笑脸运动效果有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。