基于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 相关文章推荐
prototype Element学习笔记(篇二)
Oct 26 Javascript
通过action传过来的值在option获取进行验证的方法
Nov 14 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 Javascript
js 通过cookie实现刷新不变化树形菜单
Oct 30 Javascript
js使用心得分享
Jan 13 Javascript
聊一聊jQuery插件uploadify使用方法
Aug 24 Javascript
微信小程序 教程之模板
Oct 18 Javascript
微信小程序 欢迎界面开发的实例详解
Nov 30 Javascript
微信小程序 UI布局常用技巧整理总结
Dec 05 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
Angular2 组件交互实例详解
Aug 24 Javascript
解决vue cli使用typescript后打包巨慢的问题
Sep 30 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
php实现搜索类封装示例
2016/03/31 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
Django用户认证系统 User对象解析
2019/08/02 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
应聘护士自荐信
2013/10/21 职场文书
行政人员岗位职责
2013/12/08 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
2015年个人思想总结
2015/03/09 职场文书
黑白记忆观后感
2015/06/18 职场文书
Python使用DFA算法过滤内容敏感词
2022/04/22 Python