• 技术文章 >web前端 >js教程

    js如何实现滑动门效果

    王林王林2020-03-10 10:35:13转载814

    一、实现滑动门所需技术

    1、简单的HTML基础知识

    2、简单的CSS基础样式

    3、基本的javascript知识

    (推荐教程:javascript教程

    二、实现方法

    HTML

    <div id="container">
      <img src="images/20190503222903.png"/><!--图片可以自己修改-->
      <img src="images/20190503222943.png"/>
      <img src="images/20190503223003.png"/>
      <img src="images/20190503223514.png"/>
    </div>

    CSS

    *{
      margin: 0;
      padding: 0;
      background-color: #ccc;
    }
    p{
      text-align: center;
    }
    #container{
      width: 1130px;
      height: 350px;
      margin: 0 auto;
      border-right:1px solid #FF0000;
      border-bottom:1px solid #FF0000;
      overflow: hidden;
      position: relative;
    }
    #container img{
      width:500px;
      height:350px;
      display: block;
      position: absolute;
      border-bottm:1px solid #FF0000;
    }

    JS

    //加载dom树
    window.onload = function(){
    //定义盒子
    var box=document.getElementById('container');
    //定义图片
    var imgs=box.getElementsByTagName('img');
    //图片宽度
    var imgWidth = imgs[0].offsetWidth;
    //隐藏宽度
    var exposeWidth = 210;
    //盒子宽度
    var boxWidth = imgWidth + (imgs.length -1) * exposeWidth;
    box.style.width='px';
    //设置每道门的初始位置
    function SetImgsPos(){
    for(var i = 1;i<imgs.length;i++){
          imgs[i].style.left = imgWidth + exposeWidth*(i -1)+ 'px';
          }
        }
        SetImgsPos();
         //计算每道门应该移动的距离
        var translate = imgWidth - exposeWidth;
        //为每道门绑定事件
        for(var i=0;i<imgs.length;i++){
          //使用立即调用的函数表达式,为了获得不同的i值
          (function(i){
            imgs[i].onmouseover = function(){
              SetImgsPos();
              //打开门
              for(var j=1;j<=i;j++){
                imgs[j].style.left = parseInt(imgs[j].style.left,10) - translate + 'px';
              }
            }
          })(i);
        }
      }

    更多编程相关内容,请关注php中文网编程入门栏目!

    以上就是js如何实现滑动门效果的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除
    专题推荐:js
    上一篇:js如何判断打开项目的浏览器类别 下一篇:js如何利用键盘事件实现人物行走
    千万级数据并发解决方案

    相关文章推荐

    • js中call、apply、bind的区别• js如何实现横向轮播图• 实例详解js数组方法slice()的用法• js如何判断打开项目的浏览器类别
    1/1

    PHP中文网