JS滑动门效果

效果图:

思路:通过每次鼠标移动至目标上使所有图片重置为初始样式再向左移动目标及其左侧每个图片隐藏部分距离即实现。

HTML:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>

CSS:

    <style>
        #box{border:1px gray solid; margin: 0 auto; position:relative; overflow:hidden;}
        img{width:100px; float:left; position:absolute; left:0;}
    </style>

JS:

    <script type="text/javascript">
        onload = function(){
        var box = document.getElementById(‘box‘);
        var imgs = box.getElementsByTagName(‘img‘);
        var imgw = imgs[0].offsetWidth;
        var translate = imgs[0].offsetWidth * 0.8;
        var translate2 = imgs[0].offsetWidth * 0.2;
        box.style.width = imgs[0].offsetWidth + translate * (imgs.length-1) + ‘px‘;
        box.style.height = imgs[0].offsetHeight + ‘px‘;
        var reset = function(){for(var i=1,l=imgs.length;i<l;i++){       //重置为开始的布局
            imgs[i].style.left = imgw + (i - 1) * translate + ‘px‘;
        }}
        reset();
        for(var i=0,l=imgs.length;i<l;i++){
            (function(i){
                imgs[i].onmouseover = function(){
                    if(this.getAttribute(‘offset‘) == ‘active‘){return;}                              //当移动鼠标至目标元素时重置布局并重新从目标位置左侧内容左移
                    reset();
                    for(var j=1;j<=i;j++){
                        imgs[j].style.left = parseInt(imgs[j].style.left,10) - translate2 + ‘px‘;
                    }
                    for(var k=0;k<imgs.length;k++){
                        imgs[k].setAttribute(‘offset‘,‘off‘);
                    }
                    this.setAttribute(‘offset‘,‘active‘);
                };
            })(i);
        }
        }
    </script>
    <body>
        <div id="box">
            <img src="img/1.jpg" alt="水云姬" title="不良人女帝"/>
            <img src="img/2.jpg" alt="李星云" title="不良人男主"/>
            <img src="img/3.jpg" alt="苗疆少女" title="不良人后宫"/>
            <img src="img/4.jpg" alt="张子凡" title="不良人男二"/>
            <img src="img/5.jpg" alt="叶林轩" title="不良人女二"/>
        </div>
    </body>
</html>
时间: 2024-12-23 20:52:25

JS滑动门效果的相关文章

CSS如何实现滑动门效果

CSS如何实现滑动门效果:所谓的滑动门和tab选项卡其实是一个意思,下面就通过实例介绍一下如何实现此功能,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <meta name="key

[Jquery]滑动门效果

$(function(){    var $box=$("#box");    var $img=$box.find("img");    var imgWidth=$img.eq(0).width();    var exposeWidth=160;    var boxWidth=imgWidth+exposeWidth*($img.length-1);    var translate=imgWidth-exposeWidth;    $box.width(b

JS滑动门

<a href="#" id="one1" onmouseover="setTab('one',1,2)" class="hover">专家汇聚</a> <a href="#" id="one2" onmouseover="setTab('one',2,2)" >主治医师</a> <div id="con

JS实现滑动门效果

html部分 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #d74200 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #289c97 } p.p

javascript滑动门的实现方法和案例

首先我们知道js滑动门的三种实现思路: -自定义方法 -闭包 -自定义属性 那么写个列子分析一下各自的好坏.demo地址:http://codepen.io/tianzi77/pen/jPMPeB html结构: <div id="content"> <div id="tabs"> <ul> <li class="active">天子</li> <li>滑动门</li&

css滑动门技术

双重滑动门效果还是比较常用的,其实很好理解: 两个门就好比两个块级的元素重合所形成的效果,看一段代码如下: #Mydoor ul li a:hover{ color:#fff; //设置背景 黑色 background: url(hover.gif); //设置背景 图片,图片周边应为透明,这样才能把背景衬托出来 } 可以看到左侧变化如下 /* *将连接a下的内容变为块级:给右边一个宽度 */ #Mydoor ul li a b{ display:block; //设置为块元素 padding:

js实现多个滑动门在同一个页面展示效果

多个滑动门在同一个页面展示,在工作小组里面,一直是一个让人比较纠结的问题~学习库里面有一个技术同事5年前给封装的控件,大家就一直在用复用那个. 最近项目里面用到的这个效果非常多,每次都要调用那个js控件,还得按规则匹配相应的id,真心觉得麻烦,就在想,为嘛不自己写一个可以通用的~ 于是,就有了下面这个脚本效果: js: <script type="text/javascript" > var arrayObj = [' ',' ',' ',' ',' ',' ',' '];

一款CSS+JS+DIV制作的蓝色风格tab滑动门

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>一款CSS+JS+DIV制作的蓝色风格ta

8.3 应用滑动门技术的玻璃效果菜单

本例中要实现一个玻璃材质效果的水平菜单.为了表现出立体的视觉效果,以及玻璃的质感.必须借助图像才可以实现,完成后的效果如图1所示. 该实例文件位于网页学习网CSS教程资源的“第8章\03\glass-navi.htm”. 图1 玻璃效果的菜单 本例中用到了两个图像,分别作为整个菜单的背景色平铺使用的,和当鼠标指针经过某个菜单项的时候显示出来的. 从效果图中可以看出,玻璃材质图是一个固定的图像文件,而菜单中的各个菜单项宽窄不一,却都可以完整地显示出来,这是如何实现的呢?这里使用的就是“滑动门”技术