基于JavaScript实现滑动门效果


Posted in Javascript onMarch 16, 2017

本文实例为大家分享了滑动门效果的具体代码,供大家参考,具体内容如下

滑动门效果:

基于JavaScript实现滑动门效果

原理:

一共四道门,初始情况下,第一道门打开,其他三道门关闭,如第一个图所示。
假设图片的宽度是120px,其他三道门露出的宽度是80px。
初始状态下,
第二道门左边的距离是120px,
第三道门左边的距离是200px,
第四道门左边的距离是280px。
当第二道门打开时,
第二道门左边的距离是80px,为(120-40)px
第三道和第四道门左边的距离不变。
当第三道门打开时,
第二道门左边的距离是80px,
第三道门左边的距离是160px。(200-40)px
第四道门不变

基于JavaScript实现滑动门效果

因此每道门打开,是图片的宽度减去露出的宽度,就是需要向左移动的距离。第三道门打开,第二道门需要先做移动,然后第三道门移动。每道门移动的距离都是图片的宽度减去露出来的宽度。

程序:

<script type="text/javascript">
 window.onload = function() {
  var container = document.getElementById("container");
  var imgs = container.getElementsByTagName("img");//获取图像
  var imgWidth = imgs[0].offsetWidth;//图片的宽度
  var exposeWidth = 200;//露出的宽度
  var containerWidth = imgWidth + exposeWidth * (imgs.length - 1); //外部盒子的总宽度
  container.style.width = containerWidth + "px";

  function Initial() {
   for(var i = 1; i < imgs.length; i++) {
    imgs[i].style.left = imgWidth + exposeWidth * (i - 1) + "px";
   }
  }
  Initial();  
  var translateWidth = imgWidth - exposeWidth;//移动的距离
  for(var i = 0; i < imgs.length; i++) {
   (function(i) {
    imgs[i].onmouseover = function() {
     Initial(); //鼠标经过图片时,首先设置到初始状态
     for (var j=1;j<=i;j++) { //之前的图片都移动相同的距离
      imgs[j].style.left=parseInt(imgs[j].style.left)-translateWidth+"px";
     }
    }
   })(i);
  }

 }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 学习初步 入门教程
Mar 25 Javascript
深入理解javascript的执行顺序
Apr 04 Javascript
基于iframe实现类似于ajax的页面无刷新
May 31 Javascript
JS实现方向键切换输入框焦点的方法
Aug 19 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
Aug 21 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 Javascript
jQuery实现右键菜单、遮罩等效果代码
Sep 27 Javascript
JavaScript递归操作实例浅析
Oct 31 Javascript
简单实现node.js图片上传
Dec 18 Javascript
Node.js自定义实现文件路由功能
Sep 22 Javascript
vue.js 解决v-model让select默认选中不生效的问题
Jul 28 Javascript
微信小程序实现左滑删除效果
Nov 18 Javascript
基于Vue2.0的分页组件
Mar 16 #Javascript
原生js实现验证码功能
Mar 16 #Javascript
基于vue实现多引擎搜索及关键字提示
Mar 16 #Javascript
vue图片加载与显示默认图片实例代码
Mar 16 #Javascript
js中作用域的实例解析
Mar 16 #Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 #Javascript
JS实现页面打印功能
Mar 16 #Javascript
You might like
php数组去重的函数代码
2013/02/03 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
JS 强制设为首页的代码
2009/01/31 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
javascript 中关于array的常用方法详解
2017/05/05 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
2017/05/12 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
centos系统升级python 2.7.3
2014/07/03 Python
浅谈python迭代器
2017/11/08 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
生产车间实习自我鉴定
2013/09/23 职场文书
小学新学期教师寄语
2014/01/18 职场文书
股权收购意向书
2014/04/01 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
捐款活动总结
2014/08/27 职场文书
教师求职简历自我评价
2015/03/10 职场文书
linux目录管理方法介绍
2022/06/01 Servers
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技