js实现图片推拉门效果代码实例


Posted in Javascript onMay 18, 2019

初学者。

推拉门是网页中常见的一种形式,通过JS实现比较简单。主要是通过getElement找到节点元素,然后对其进行相应的赋值即可。

新建一个index.html文件,并在同一个目录中添加三个文件夹,images(用来当作“门”的图片),styles(用来存放css文件),scripts(用来存放js文件)。然后在index.html中添加代码:

<!doctype html>
<html>
	<head>
	<meta charset="utf-8"/>
	<title>sliding doors</title>
	<link rel="stylesheet" href="styles/doors.css" rel="external nofollow" />
	<script src="scripts/doors.js"></script>
	</head>
	<body>
		<div id="container">
			<img src="images/door1.jpg" alt="柯南" title="柯南"/>
			<img src="images/door2.jpg" alt="柯南" title="柯南"/>
			<img src="images/door3.jpg" alt="柯南" title="柯南"/>
			<img src="images/door4.jpg" alt="柯南" title="柯南"/>
		</div>
	</body>
</html>

接着是styles目录下的doors.css:

#container{
	height:600px;
	border-right:1px solid #ccc;
	border-bottom:1px solid #ccc;
	margin:0 auto;
	position:relative;
	overflow:hidden;
}
 
#container img{
	position:absolute;
	border-left:1px solid #ccc;
	display:block;
	left:0;
}

然后是scripts目录下的doors.js:

window.onload = function()
{
	var box = document.getElementById("container"); //获得容器对象
	var imgs = box.getElementsByTagName("img"); //获得图片对象数组
	imgWidth = imgs[0].offsetWidth; //图片宽度
	var exposeWidth = 100; //每张图片露出的宽度
	var boxWidth = imgWidth + exposeWidth * (imgs.length - 1);
	box.style.width = boxWidth + "px";
	
	//初始化图片位置
	function reset()
	{
		for(var i = 1; i < imgs.length; i ++)
		{
			imgs[i].style.left = imgWidth + (i - 1) * exposeWidth + "px";
		}
	} 
	reset();
	
	//开门时候每个图片应该左移的距离
	var translate = imgWidth - exposeWidth;
	//为每个图片添加事件
	for(var i = 0; i < imgs.length; i ++)
	{
		
		//自动执行函数
		(function(i){
			imgs[i].onmouseover = function()
			{
				//重置图片位置
				reset();
				for(var j = 1; j <= i; j ++)
				{
					imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + "px";
					
				}
			};
			
		})(i);
	}
};

这样即可实现推拉门效果。

效果如下,截图略微粗糙

js实现图片推拉门效果代码实例

以上所述是小编给大家介绍的js实现图片推拉门效果代码实例详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript的一种模块模式
Sep 08 Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
JavaScript中实现异步编程模式的4种方法
Sep 24 Javascript
浅谈JavaScript函数节流
Dec 09 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
Feb 29 Javascript
Javascript简写条件语句(推荐)
Jun 12 Javascript
好好了解一下Cookie(强烈推荐)
Jun 14 Javascript
js实现简单的选项卡效果
Feb 23 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
Angular利用trackBy提升性能的方法
Jan 26 Javascript
vue filters的使用详解
Jun 11 Javascript
vue 组件的封装之基于axios的ajax请求方法
Aug 11 Javascript
微信小程序代码上传、审核发布小程序
May 18 #Javascript
详解js中let与var声明变量的区别
Apr 05 #Javascript
webpack中如何加载静态文件的方法步骤
May 18 #Javascript
微信小程序实现录音时的麦克风动画效果实例
May 18 #Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 #Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 #Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 #Javascript
You might like
Apache2 httpd.conf 中文版
2006/12/06 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
使用javascript做在线算法编程
2018/05/25 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
python生成随机mac地址的方法
2015/03/16 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
详解Python中import机制
2020/09/11 Python
python温度转换华氏温度实现代码
2020/12/06 Python
阿巴庭院:Abba Patio
2019/06/18 全球购物
办公室副主任岗位职责
2013/11/25 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
公司前台辞职报告
2014/01/19 职场文书
服务员岗位职责
2014/01/29 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
个人先进材料范文
2014/12/30 职场文书
水电施工员岗位职责
2015/04/11 职场文书
2016年记者节感言
2015/12/08 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL