首页 > 代码库 > JS制作图片手风琴效果
JS制作图片手风琴效果
使用JS写出 图片的手风琴效果
第一种:浮动版本的手风琴效果,并不推荐,因为会使图片出现抖动的现象
样式则是div中包含ul
<script src="http://www.mamicode.com/animate.js"></script> <script> //1. 找出页面中需要的对象 var box = document.getElementById("box"); var ul = box.children[0]; var lis = ul.children; //2. 给ul中的li设置背景 for (var i = 0; i < lis.length; i++) { var li = lis[i]; li.style.backgroundImage = "url(images/" + (i + 1) + ".jpg)"; //3. 给li注册onmouseover事件,这里我让当前li宽度变成800 其他100 li.onmouseover = function () { // 先让所有的li变成100 for (var i = 0; i < lis.length; i++) { //引入的animate就是上次封装的简单动画 animate(lis[i], {"width": 100}); } // 让当前li宽度变成800 animate(this, {"width": 800}); } //4. 给li注册onmouseout事件,让所有的li变成240px li.onmouseout = function () { for (var i = 0; i < lis.length; i++) { animate(lis[i], {"width": 240}); } } } </script>
第二种:定位版本,相对较稳定
<script src="http://www.mamicode.com/animate.js"></script> <script> //找对象 var box = document.getElementById("box"); var ul = box.children[0]; var lis = ul.children; //为li增加图片 for(var i=0;i<lis.length;i++){ var li = lis[i]; li.index = i; li.style.backgroundImage = "url(images/"+(i+1)+".jpg)"; li.style.left = 240*i+"px"; //注册鼠标经过事件,鼠标经过,根据下标,计算需要移动的位置 li.onmouseover = function () { var idx = this.index; for(var i=0;i<lis.length;i++){ if(i<=idx){ animate(lis[i],{"left":100*i}) }else{ animate(lis[i],{"left":100*i+700}) } } } //注册鼠标离开事件 li.onmouseout = function () { for(var i=0;i<lis.length;i++){ animate(lis[i],{"left":240*i}) } } } </script>
JS制作图片手风琴效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。