基于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 Array对象基础知识小结
Nov 16 Javascript
javascript中创建对象的三种常用方法
Dec 30 Javascript
深入解析JavaScript中的变量作用域
Dec 06 Javascript
JavaScript定义变量和变量优先级问题探讨
Oct 11 Javascript
javascript常用方法总结
May 14 Javascript
基于javascript实现页面加载loading效果
Sep 15 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
Mar 06 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
JavaScript 中的 this 工作原理
Jun 20 Javascript
微信小程序如何实现在线客服功能
Oct 16 Javascript
Vue通过provide inject实现组件通信
Sep 03 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+mysql实现用户注册登陆的方法
2015/01/03 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
Ionic快速安装教程
2016/06/03 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
Python 实现微信自动回复的方法
2020/09/11 Python
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
机械工程师的岗位职责
2013/11/17 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
污水处理保证书
2015/05/09 职场文书
详解Python中下划线的5种含义
2021/07/15 Python
SpringBoot快速入门详解
2021/07/21 Java/Android
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
浅谈MySQL函数
2021/10/05 MySQL
python 安全地删除列表元素的方法
2022/03/16 Python