基于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 相关文章推荐
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
jQuery操作属性和样式详解
Apr 13 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
Aug 25 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
Vue-路由导航菜单栏的高亮设置方法
Mar 17 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
深入浅出理解JavaScript闭包的功能与用法
Aug 01 Javascript
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 Javascript
react写一个select组件的实现代码
Apr 03 Javascript
jQuery实现简单评论功能
Aug 19 jQuery
JavaScript 实现轮播图特效的示例
Nov 05 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 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
JavaScript多线程详解
2015/08/12 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
Python使用minidom读写xml的方法
2015/06/03 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
如何进行Linux分区优化
2013/02/12 面试题
优秀驾驶员先进事迹材料
2014/05/04 职场文书
护士自荐信范文
2015/03/25 职场文书
区域销售大会开幕词
2016/03/04 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书