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 相关文章推荐
JQuery中each()的使用方法说明
Aug 19 Javascript
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
Dec 02 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
Nov 16 Javascript
jQuery Tree Multiselect使用详解
May 02 jQuery
解决循环中setTimeout执行顺序的问题
Jun 20 Javascript
微信小程序中上传图片并进行压缩的实现代码
Aug 28 Javascript
解决vue移动端适配问题
Dec 12 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 Javascript
使用Vue调取接口,并渲染数据的示例代码
Oct 28 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
一个用php实现的获取URL信息的类
2007/01/02 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
jquery 插件学习(二)
2012/08/06 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
Python中字符编码简介、方法及使用建议
2015/01/08 Python
开始着手第一个Django项目
2015/07/15 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python对切片命名的实现方法
2018/10/16 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
结构和类有什么异同
2012/07/16 面试题
工作失职检讨书范文
2014/01/16 职场文书
个人担保书格式范文
2014/05/12 职场文书
预备党员综合考察材料
2014/05/31 职场文书
大学生心理活动总结
2014/07/04 职场文书
干部对照检查材料范文
2014/08/26 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
委托公证书格式
2015/01/26 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
戒赌保证书
2015/05/11 职场文书
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python