原生 javaScript 百叶窗 效果的实现及原理介绍
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了原生 javaScript 百叶窗 效果的实现及原理介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1986字,纯文字阅读大概需要3分钟。
内容图文
百叶窗大家都见过吧!如图:
原理:
- 如图所示,空心格子就好比是每个li,给它设定相对定位属性,设置overflow:hidden;
- 黑块为li子元素,高度为li的2倍,设置absolute属性,我们正是要改变它的top值从而获得变化!
- (右上角多余块与本图无关)
布局分析:
- 注意top值得变化!默认top=0时候,显示的“一楼上铺”,当top=-40px时候,li的子元素 上移40px,这时候显示的内容就为“一楼下铺”
- 注意p元素的包裹层div
JS分析:
- 要开多个定时器来达到效果
- 执行相反方向
- 执行多组运动
- 累加产生错落感
- 产生时间间隔的动画
JS代码如下:
1 < script > 2 window.onload = function (){ 3 var oUl = document.getElementById( ‘ ul1 ‘ ); 4 var oUl2 = document.getElementById( ‘ ul2 ‘ ); 5 6 toShow(oUl); 7 //每四秒执行一次 8 setTimeout(function(){ 9 toShow(oUl2); 10 },4000); 11function toShow(obj){ 12var aDiv = obj.getElementsByTagName(‘div‘); 13var iNow =0; 14var timer =null; 15var bBtn =true; 1617 setInterval(function(){ 18 toChange(); 19 },2000); 20function toChange(){ 21 timer = setInterval(function(){ 22if(iNow==aDiv.length){ 23 clearInterval(timer); 24 iNow =0; 25 bBtn =!bBtn; 26 } 27elseif(bBtn){ 28 startMove(aDiv[iNow],{top:0},function(){ 29var p = document.getElementsByClassName(‘p-2‘); 30for(var i=0; i<p.length;i++){ 31 p[i].style.background =‘red‘; 32 } 33 }); 34 iNow++; 35 } 36else{ 37 startMove(aDiv[iNow],{top:-30}); 38 iNow++; 39 } 40 },100); 41 } 42 } 43 };
//运动框架 44function startMove(obj,json,endFn){ 45 clearInterval(obj.timer); 46 obj.timer = setInterval(function(){ 47var bBtn =true; 48for(var attr in json){ 49var iCur =0; 50 iCur = parseInt(getStyle(obj,attr)) ||0; 51var iSpeed = (json[attr] - iCur)/8;52 iSpeed = iSpeed >0? Math.ceil(iSpeed) : Math.floor(iSpeed); 5354if(iCur!=json[attr]){ 55 bBtn =false; 56 } 57 obj.style[attr] = iCur + iSpeed +‘px‘; 58 } 59if(bBtn){ 60 clearInterval(obj.timer); 61if(endFn){ 62 endFn.call(obj); 63 } 64 } 65 },30); 66 }
//获取非行间样式 67function getStyle(obj,attr){ 68if(obj.currentStyle){ 69return obj.currentStyle[attr]; 70 } 71else{ 72return getComputedStyle(obj,false)[attr]; 73 } 74 } 75</script>
下载地址:(百度云)
- http://pan.baidu.com/s/1gexD6KF
博客主页:http://www.cnblogs.com/bc8web/
欢迎拍砖交流!
原文:http://www.cnblogs.com/bc8web/p/JavaScript2.html
内容总结
以上是互联网集市为您收集整理的原生 javaScript 百叶窗 效果的实现及原理介绍全部内容,希望文章能够帮你解决原生 javaScript 百叶窗 效果的实现及原理介绍所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。