基于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 相关文章推荐
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
May 27 Javascript
javascript操作表格排序实例分析
May 06 Javascript
微信小程序 教程之数据绑定
Oct 18 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
Nov 25 Javascript
Angular中使用$watch监听object属性值的变化(详解)
Apr 24 Javascript
常见的浏览器Hack技巧整理
Jun 29 Javascript
JavaScript生成图形验证码
Aug 24 Javascript
小程序ios音频播放没声音问题的解决
Jul 11 Javascript
vue实现购物车的监听
Apr 20 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
Apr 20 Javascript
javascript实现雪花飘落效果
Aug 19 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简单静态页生成过程
2008/03/27 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
教你如何使用php session
2013/10/28 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
应届毕业生的自我鉴定
2013/11/13 职场文书
面试后的英文感谢信
2014/02/01 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
2015年党性分析材料
2014/12/19 职场文书
质检员岗位职责
2015/02/03 职场文书
2015年征兵工作总结
2015/07/23 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
开学随笔
2015/08/15 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
校运会班级霸气口号
2015/12/24 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS