JS制作图片手风琴效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS制作图片手风琴效果相关的知识,希望对你有一定的参考价值。

 使用JS写出 图片的手风琴效果

第一种:浮动版本的手风琴效果,并不推荐,因为会使图片出现抖动的现象

样式则是div中包含ul

<script src="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="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制作图片手风琴效果的主要内容,如果未能解决你的问题,请参考以下文章

我网页现在有一排手风琴效果的图片,现在要求鼠标光标滑到任意一个图,下方显示相应图,用jQuery

手风琴效果

手风琴效果案例

214 jQuery案例:王者荣耀手风琴效果

制作手风琴效果时发现新大陆,好吧,其实是一个bug

手风琴菜单层级菜单置顶菜单无缝滚动的制作