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代码[翻译]
Feb 12 Javascript
使用jquery为table动态添加行的实现代码
Mar 30 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
May 09 Javascript
js修改onclick动作的四种方法(推荐)
Aug 18 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 Javascript
分分钟玩转Vue.js组件(二)
Mar 01 Javascript
JavaScript实现简单的四则运算计算器完整实例
Apr 28 Javascript
基于JSONP原理解析(推荐)
Dec 04 Javascript
基于模板引擎Jade的应用(详解)
Dec 12 Javascript
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
webpack4之SplitChunksPlugin使用指南
Jun 12 Javascript
微信小程序保持session会话的方法
Mar 20 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使用PDO方法详解
2014/12/27 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Python 对象中的数据类型
2017/05/13 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
python利用opencv保存、播放视频
2020/11/02 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS