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 相关文章推荐
用Js实现的动态增加表格示例自己写的
Oct 21 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
Feb 12 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
Aug 22 Javascript
javascript实现时间格式输出FormatDate函数
Jan 13 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
使用JS获取页面上的所有标签
Oct 18 Javascript
深入理解js A*寻路算法原理与具体实现过程
Dec 13 Javascript
10种JavaScript最常见的错误(小结)
Jun 21 Javascript
vue.js实现简单购物车功能
May 30 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生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP中文编码小技巧
2014/12/25 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
php分页查询的简单实现代码
2017/03/14 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
纯python实现机器学习之kNN算法示例
2018/03/01 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
中专毕业生的自我鉴定
2013/12/01 职场文书
房地产广告策划方案
2014/05/15 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
企业宣传策划方案
2014/05/29 职场文书
篮球比赛口号
2014/06/10 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
嘉宾邀请函
2015/01/31 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
业务员管理制度范本
2015/08/06 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
python munch库的使用解析
2021/05/25 Python