基于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 dom 基本操作小结
Apr 11 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
Jan 16 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
js弹出层永远居中实现思路及代码
Nov 29 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
详解JS中的快速排序与冒泡
Jan 10 Javascript
Vue.js实现网格列表布局转换方法
Aug 25 Javascript
通过javascript实现段落的收缩与展开
Jun 26 Javascript
vue 清空input标签 中file的值操作
Jul 21 Javascript
jQuery实现增删改查
Dec 22 jQuery
基于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
PHP4之COOKIE支持详解
2006/10/09 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
在Python下尝试多线程编程
2015/04/28 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
Python实现数值积分方式
2019/11/20 Python
matplotlib实现显示伪彩色图像及色度条
2019/12/07 Python
python实现学生管理系统开发
2020/07/24 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
优秀本科毕业生自荐信
2014/07/04 职场文书
2014年共青团工作总结
2014/12/10 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server
python Django框架快速入门教程(后台管理)
2021/07/21 Python