基于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中判断原生函数检查function是否是原生代码
Sep 09 Javascript
JS操作HTML自定义属性的方法
Feb 10 Javascript
jQuery实现高亮显示网页关键词的方法
Aug 07 Javascript
JS实现的网页背景闪电闪烁效果代码
Oct 17 Javascript
Jquery实现上下移动和排序代码
Oct 17 Javascript
javascript实现下雨效果
Mar 27 Javascript
基于Two.js实现星球环绕动画效果的示例
Nov 06 Javascript
小程序实现左右来回滚动字幕效果
Dec 28 Javascript
微信小程序开发实现消息推送
Nov 18 Javascript
小程序根据手机机型设置自定义底部导航距离
Jun 04 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
Aug 17 Javascript
原生JavaScript实现轮播图
Jan 10 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
也谈截取首页新闻 - 范例
2006/10/09 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
浅析php创建者模式
2014/11/25 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
[原创]图片分页查看
2006/08/28 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
js实现select选择框效果及美化
2016/08/19 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
基于python的列表list和集合set操作
2019/11/24 Python
关于python 跨域处理方式详解
2020/03/28 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
财务工作者先进事迹材料
2014/01/17 职场文书
初中语文教学反思
2014/02/02 职场文书
自荐书范文范例
2014/02/13 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
行政答辩状范文
2015/05/21 职场文书
运动员入场词
2015/07/18 职场文书
初中军训感言
2015/08/01 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA