基于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 相关文章推荐
jQuery+CSS 实现的超Sexy下拉菜单
Jan 17 Javascript
JavaScript几种形式的树结构菜单
May 10 Javascript
js输出列表实现代码
Sep 12 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
javascript全局变量封装模块实现代码
Nov 28 Javascript
用队列模拟jquery的动画算法实例
Jan 20 Javascript
js删除局部变量的实现方法
Jun 25 Javascript
原生JS实现图片轮播效果
Dec 26 Javascript
详解tween.js 中文使用指南
Jan 05 Javascript
函数式编程入门实践(一)
Apr 20 Javascript
JS实现碰撞检测效果
Mar 12 Javascript
vue中h5端打开app(判断是安卓还是苹果)
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
Codeigniter的一些优秀特性总结
2015/01/21 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
GreyBox技术总结(转)
2010/11/23 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
详解JavaScript函数
2015/12/01 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
详解jQuery选择器
2016/12/21 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
python退出循环的方法
2020/06/18 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
防沙治沙典型材料
2014/05/07 职场文书
个性车贴标语
2014/06/24 职场文书
三严三实心得体会范文
2014/10/13 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL