基于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 innerHTML 改变div内容的方法
Aug 03 Javascript
jquery div拖动效果示例代码
Dec 08 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
May 10 Javascript
JS判断字符串包含的方法
May 05 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
js中new一个对象的过程
Feb 20 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 Javascript
过滤器vue.filters的使用方法实现
Sep 18 Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
May 09 Javascript
Vue触发input选取文件点击事件操作
Aug 07 Javascript
Vue SPA 首屏优化方案
Feb 26 Vue.js
基于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数组的一些常见操作汇总
2011/07/17 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
python调用自定义函数的实例操作
2019/06/26 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
python+requests接口自动化框架的实现
2020/08/31 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
物流管理应届生求职信
2013/11/07 职场文书
班长演讲稿范文
2014/04/24 职场文书
文员求职信
2014/07/15 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
基层党组织整改方案
2014/10/25 职场文书
2015年技术员工作总结
2015/04/10 职场文书
教师节校长致辞
2015/07/31 职场文书