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 相关文章推荐
去除链接虚线全面分析总结
Aug 15 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
Apr 20 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
Dec 08 Javascript
jQuery Ajax使用 全解析
Dec 15 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
Aug 25 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 Javascript
微信小程序公用参数与公用方法用法示例
Jan 09 Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 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制作简单的内容采集器的原理分析
2008/10/01 PHP
如何让CI框架支持service层
2014/10/29 PHP
php实现留言板功能
2017/03/05 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
javascript 写类方式之十
2009/07/05 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
javascript基础知识讲解
2017/01/11 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
2014年高中班主任工作总结
2014/11/08 职场文书
2015年人事科工作总结
2015/04/28 职场文书
盲山观后感
2015/06/11 职场文书
离职证明格式样本
2015/06/12 职场文书
法律服务所工作总结
2015/08/10 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书