时间:2021-07-01 10:21:17 帮助过:3人阅读
本文实例讲述了JS实现的简单折叠展开动画效果。分享给大家供大家参考,具体如下:
- <!DOCTYPE = html>
- <html>
- <head>
- <title>www.gxlcms.com JS折叠展开动画</title>
- <style>
- body{
- margin: 0px;
- padding: 0px;
- }
- .red{
- background-color:red;
- width:200px;
- height:200px;
- position:relative;
- left:-200px;
- top:0px;
- }
- .blue{
- background:blue;
- width:20px;
- height:50px;
- position:absolute;
- left:200px;
- top:75px;
- }
- </style>
- </head>
- <body>
- <div class="red" id="cf1"><div class="blue" id="cf">分享</div></div>
- <script>
- window.onload = function(){
- var onDiv = document.getElementById("cf1");
- onDiv.onmouseover = function(){
- startmove(0);
- }
- onDiv.onmouseout = function(){
- startmove(-200);
- }
- }
- var timer ;
- function startmove(target){
- clearInterval(timer);//清除定时器,以免多次触发定时器导致速度越来越快而不是匀速前进
- var onDiv1 = document.getElementById("cf1");
- timer = setInterval(function(){
- var speed = 0;
- if(onDiv1.offsetLeft<target){
- speed = 10;
- }else{
- speed = -10;
- }
- if(onDiv1.offsetLeft==target){
- clearInterval(timer);
- }
- else{
- onDiv1.style.left = onDiv1.offsetLeft+speed+'px';
- }
- },30)
- }
- </script>
- </body>
- </html>
运行效果:
小结:
一、css部分:
1、别忘记样式初始化;
2、复习css文件的引用方式;(类引用方式)
3、复习绝对定位和相对定位关系(父关系用relative;子关系用absolute)
二、js部分:
1、element.style.left & element.offsetLeft区别:
① 前者单位是px,是字符串;后者单位是数值;
② 其他参见://www.gxlcms.com/article/43981.htm
2、思路开始不够清晰,未能抽象出鼠标放上和移开关键变量——目标位置不同而已
3、函数参数尽可能少(在能达成目标的情况下)
4、鼠标作用对象设置为父级div最好,不然会出现闪烁情况(刚调用onmouseover,目标移除,又调用了onmouseout)
5、注意清除定时器(①、防止移动时速度不稳定 ②、到目标位置停止运动)
三、其他:
Q:谷歌浏览器解除禁止弹出窗口?
A:设置——高级设置——隐私设置——内容设置——弹出式窗口,进行相关设置。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript页面元素操作技巧总结》、《JavaScript运动效果与技巧汇总》、《JavaScript动画特效与技巧汇总》、《JavaScript图形绘制技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。