基于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的执行顺序
Apr 04 Javascript
Javascript实现Web颜色值转换
Feb 05 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
Aug 06 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
Oct 03 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
Mar 25 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
微信小程序五子棋游戏AI实现方法【附demo源码下载】
Feb 20 Javascript
layer.confirm()右边按钮实现href的例子
Sep 27 Javascript
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
js+canvas实现画板功能
Sep 13 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
oracle资料库函式库
2006/10/09 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
jquery 事件对象属性小结
2010/04/27 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
js结合正则实现国内手机号段校验
2015/06/19 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
python与php实现分割文件代码
2017/03/06 Python
Python Logging 日志记录入门学习
2018/06/02 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
对Django中内置的User模型实例详解
2019/08/16 Python
python库matplotlib绘制坐标图
2019/10/18 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
幼儿园托班开学寄语
2014/01/18 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
工地标语大全
2014/06/18 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书