js实现简单动画效果的定时器
js可以实现定时器功能,本文主要和大家分享js定时器+简单的动画效果实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助大家用js做出一个更好的定时器。
1.向下滑动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>向下滑动</title> <style> body { margin: 0px; } #show { width: 200px; /* 高度为 0 */ height: 100px; background-color: lightcoral; margin: 0 auto; /* 设置为隐藏 */ /*display: none;*/ } </style> </head> <body> <p id="show"></p> <script> var show = document.getElementById('show'); /*show.style.display = 'block'; var t = setInterval(function(){ var style = window.getComputedStyle(show,null); var height = parseInt(style.height); // 判断当前的高度是否为 400 if (height >= 400){ clearInterval(t); } else { height++; show.style.height = height + 'px'; } },50);*/ slideDown(show,400); /* 将上述实现的向下滑动效果,封装在一个固定的函数中 * 设计当前实现向下滑动效果函数的形参 * elem - 表示实现向下滑动效果的元素 * maxHeight - 表示元素向下滑动的最大高度值 * 函数的逻辑与默认设置CSS样式属性的值无关 */ function slideDown(elem, maxHeight){ // 操作的元素默认的display值为none elem.style.display = 'block'; elem.style.height = '0px'; var t = setInterval(function(){ var style = window.getComputedStyle(elem,null); var height = parseInt(style.height); // 判断当前的高度是否为 400 if (height >= maxHeight){ clearInterval(t); } else { height++; elem.style.height = height + 'px'; } },50); } </script> </body> </html>
2.移动效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>移动效果</title> <style> body { margin: 0px; } #box { width: 100px; height: 100px; background-color: lightcoral; position: absolute; left: 100px; top: 100px; } </style> </head> <body> <p id="box"></p> <script> var box = document.getElementById('box'); box.onclick = function(){ clearInterval(t); } /* * 向右移动 * 当前元素移动到页面的最右边时 -> 向左移动 * 向左移动 * 当前元素移动到页面的最左边时 -> 向右移动 */ var flag = false;// 默认表示向右 var speed = 1;// 表示每次变化的值 t = setInterval(function(){ //speed += 0.01; // 获取当前页面的宽度 var WIDTH = window.innerWidth; var style = window.getComputedStyle(box,null); var left = parseInt(style.left); var width = parseInt(style.width); // 判断当前元素移动的方向 if (flag){// 向左移动 left -= speed; } else {// 向右移动 left += speed; } // 判断什么情况下,向左移动;判断什么情况下,向右移动 if ((left + width) >= WIDTH){// 向左移动 flag = true; } else if (left <= 0){// 向右移动 flag = false; } box.style.left = left + 'px'; },10); </script> </body> </html>
3.事件与动画结合
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>事件与动画结合</title> <style> body { margin: 0px; } </style> </head> <body> <script> // 获取<body>元素 var body = document.body; // 当页面加载完毕后,设置当前<body>元素的高度为当前浏览器窗口的高度 window.onload = function(){ setHeight(body); }; // 当用户改变浏览器窗口的大小时,重新设置<body>元素的高度(等于当前窗口的高度) window.onresize = function(){ setHeight(body); }; // 定义函数 - 设置<body>元素的高度等于当前窗口的高度 function setHeight(elem){ elem.style.height = window.innerHeight + 'px'; } var width = 100,height = 100; // 为<body>元素绑定click事件 body.onclick = function(event){ var x = event.clientX; var y = event.clientY; // 创建<p>元素,显示的位置在鼠标当前的坐标值 var p = document.createElement('p'); p.setAttribute('class','circle'); body.appendChild(p); // rgb(0,0,0)格式 -> 颜色随机 var r = parseInt(Math.random()*255); var g = parseInt(Math.random()*255); var b = parseInt(Math.random()*255); p.style.width = width + 'px'; p.style.height = height + 'px'; p.style.backgroundColor = 'rgb('+r+','+g+','+b+')'; p.style.borderRadius = '50%'; p.style.opacity = 1; p.style.position = 'absolute'; p.style.left = x - width/2 + 'px'; p.style.top = y - height/2 + 'px'; animate(p); } // 定义函数 -> 实现动画效果 function animate(elem){ var style = window.getComputedStyle(elem,null); /*var width = parseInt(style.width); var height = parseInt(style.height); var left = parseInt(style.left); var top = parseInt(style.top); width++; height++; elem.style.width = width + 'px'; elem.style.height = height + 'px'; elem.style.left = (left - 0.5) + 'px'; elem.style.top = (top - 0.5) +'px';*/ var opacity = style.opacity; if (opacity <= 0){ clearTimeout(t); // 删除当前元素 } opacity -= 0.01; elem.style.opacity = opacity; // 设定定时器 var t = setTimeout(function(){ animate(elem); },50); } </script> </body> </html>
相关推荐:
以上是js实现简单动画效果的定时器的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

你可能遇到过智能手机屏幕出现绿色线条的问题,即使没见过,也一定在网络上看到过相关图片。那么,智能手表屏幕变白的情况你遇见过吗?4月2日,CNMO从外媒了解到,一名Reddit用户在社交平台上分享了一张图片,展示了三星Watch系列智能手表屏幕变白的情况。该用户写道:"我离开时正在充电,回来时就这样了,我尝试重启,但重启过程中屏幕还是这样。"三星Watch智能手表屏幕变白这位Reddit用户并未指明这款智能手表的具体型号。不过,从图片上看,应该是三星Watch5。此前,另一位Reddit用户也报告

说起阿萨辛ASSASSIN,相信玩家们一定会想到《刺客信条》中的各位刺客大师,不仅身手了得,而且"躬身于黑暗、服务于光明"的信条,与国内知名机箱/电源/散热器品牌九州风神(DeepCool)旗下的阿萨辛ASSASSIN系列旗舰级风冷散热器不谋而合。最近,该系列的最新产品阿萨辛ASSASSIN4S重磅上线,"西装刺客,再进阶"为高级玩家带来全新的风冷散热体验。外观一览细节满满阿萨辛4S散热器采用双塔构造+单风扇内嵌设计,外面包覆立方体造型的整流罩,整体感极强,并提供白、黑两种配色可选,满足不同色系

随着春天的到来,万物复苏,一切都充满了生机与活力。在这个美好的季节里,如何为家居生活增添一抹别样的色彩?哈趣H2投影仪,以其精致的设计和超高的性价比,成为了这个春天里不可或缺的一道亮丽风景。这款H2投影仪小巧玲珑却不失时尚。无论是放在客厅的电视柜上,还是卧室的床头柜旁,都能成为一道亮丽的风景线。它的机身采用了奶白色的磨砂质地,这种设计不仅让投影仪的外观更显高级,同时也增加了触感的舒适度。米色仿皮纹材质,更是为整体外观增添了一抹温馨与雅致。这种色彩与材质的搭配,既符合现代家居的审美趋势,又能够融入

ITX平台以小巧的身形吸引了不少追求极致和独特美感的玩家,随着制程的提升和技术的进步,英特尔第14代酷睿和RTX40系显卡都可以在ITX平台中发挥实力,游戏玩家也对SFX电源有了更高的要求。游戏爱好者航嘉推出新的MX系列电源,在满足高性能需求的ITX平台中,MX750P全模组电源的定额功率高达750W,同时通过了80PLUS白金级认证。以下我们就带来这款电源的评测。航嘉MX750P全模组电源采用了简约时尚的设计理念,共有黑白两款供玩家选择,均采用磨砂表面处理,搭配银灰色和红色的字体有很好的质感,

一个可以自动分析PDF、网页、海报、Excel图表内容的大模型,对于打工人来说简直不要太方便。上海AILab,香港中文大学等研究机构提出的InternLM-XComposer2-4KHD(简写为IXC2-4KHD)模型让这成为了现实。相比于其他多模态大模型不超过1500x1500的分辨率限制,该工作将多模态大模型的最大输入图像提升到超过4K(3840x1600)分辨率,并支持任意长宽比和336像素~4K动态分辨率变化。发布三天,该模型就登顶HuggingFace视觉问答模型热度榜单第一。轻松拿捏

在当下科技飞速发展的时代,笔记本电脑已经成为人们日常生活和工作中不可或缺的重要工具。对于那些对性能有高要求的玩家而言,拥有配置强大、性能出色的笔记本电脑才能满足其硬核需求。七彩虹隐星P15笔记本电脑凭借其卓越性能和令人惊艳的设计,成为了未来的引领者,堪称硬核笔记本的典范。七彩虹隐星P1524配备了13代英特尔酷睿i7处理器和RTX4060LaptopGPU,外观采用更时尚的宇宙飞船设计风格,同时在细节表现上也有出色表现。让我们先来了解一下这款笔记本的特点。至高搭载英特尔酷睿i7-13620H处理

在当今智能手机市场中,屏幕素质已经成为衡量一款手机综合性能的关键指标之一。iQOO旗下的Neo系列一直致力于为用户提供出色的游戏体验和视觉享受,最新款产品iQOONeo9SPro+更是采用一块"三好护眼电竞屏",接下来我们就来一起看看这块屏幕的素质有多出色。iQOONeo9SPro+搭载了一块1.5KOLED电竞直屏,支持从1Hz到144Hz的旗舰级LTPO自适应刷新率,意味着在显示静态内容时能够实现超低功耗的待机状态,而在游戏过程中也能智能切换至90Hz至144Hz的动态高

很多摄影爱好者喜欢使用镜头,他们的拍摄需求非常多变,因此在镜头的选择上更倾向于一支比较全能的产品,也就是我们俗称的"一镜走天下"镜头。刚好,现在尼康推出了一支新的产品,尼克尔Z28-400mmf/4-8VR镜头,一支真正的"一镜走天下"镜头。镜头从28mm广角端一直覆盖到400mm长焦端,配备其Z卡口相机,可以轻松拍摄十分丰富的摄影主题,并带来一场丰富的视角变化。今天,我们就通过近期的使用体验,跟大家一起聊聊这支尼克尔Z28-400mmf/4-8VR镜头。尼克尔Z28-400mmf/4-8VR是
