待改进-自动切换的轮播图代码

本文详细介绍了使用JavaScript实现的一种图片轮播动画效果,包括图片自动滚动及文字上下移动的细节处理,并探讨了如何通过判断变量值来控制动画的暂停与继续。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



//设置wrap的宽度
//onLoad
$(function(){

var oShade = $('shade');
var oWrap = $('wrap');
var oBar = $class(oWrap,'div','bar');
var oBarW = parseInt( getStyle(oBar[0],'width') );


oWrap.style.width = oBarW*oBar.length + 'px';
oWrap.style.position = 'absolute';
oWrap.style.left = 0;
oWrap.style.top = 0;

var i = -1;
var v = 20;

oWrap.timer = setTimeout(function timer(){
	++i;
	if( i == oBar.length ){
		i = 0;
		v = 100;
	}else{
		v = 20;
	}

	//1.向左移动
	doMove( oWrap,'left',v,-oBarW*i,0,30,function(){
		//2.文字向上移出
		doMove( oBar[i].getElementsByTagName('div')[0],'bottom',10,0,0,30,function(){
			//3.文字向下移走
			doMove( oBar[i].getElementsByTagName('div')[0],'bottom',10,-100,2000,30,function(){
				//从1开始,重复执行
					setTimeout(timer,200);
			});
		});


	});

},200);




});
复制代码




<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>

<style>
*{ margin: 0; padding: 0; }
a{ text-decoration: none; }

	#shade,#wrap,.bar,.bar img{ height: 314px; }
	#shade{ position: absolute; z-index: 9; width: 514px; overflow: hidden; }

	#wrap{  }
	.bar{ position: relative; float: left;  }
	.bar img{  }
	.text,.text a{ color: #fff; }
	.text a:hover{ text-decoration: underline; }
	.text{ position: absolute; z-index: 2; bottom: 0; left: 0; bottom: -100px; width: 476px; height: 100px; padding: 0 16px; background: rgba(0,0,0,0.5); }
	.text h2{ line-height: 48px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 20px; }
	.text p{ text-indent: 2em; font-size: 12px; }
</style>

</head>
<body>



<div id="shade">
	

	<div id="wrap">
		
		<div class="bar">
			<img src="img/1.jpg" alt="图片" />
			<div class="text">
				<h2><a href="#">大标题大标题大标题大标题大标题大标题大标题大标题</a></h2>
				<p>介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文介绍文字介介绍文字介绍文字介绍文字介绍文字介绍文字</p>
			</div>
		</div>
		
		<div class="bar">
			<img src="img/1.jpg" alt="图片" />
			<div class="text">
				<h2><a href="#">大标题大标题大标题大标题大标题大标题大标题大标题</a></h2>
				<p>介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文介绍文字介介绍文字介绍文字介绍文字介绍文字介绍文字</p>
			</div>
		</div>
		
		<div class="bar">
			<img src="img/1.jpg" alt="图片" />
			<div class="text">
				<h2><a href="#">大标题大标题大标题大标题大标题大标题大标题大标题</a></h2>
				<p>介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文介绍文字介介绍文字介绍文字介绍文字介绍文字介绍文字</p>
			</div>
		</div>
		
<!-- 		<div class="bar">
			<img src="img/1.jpg" alt="图片" />
			<div class="text">
				<h2><a href="#">大标题大标题大标题大标题大标题大标题大标题大标题</a></h2>
				<p>介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文介绍文字介介绍文字介绍文字介绍文字介绍文字介绍文字</p>
			</div>
		</div>
		
		<div class="bar">
			<img src="img/1.jpg" alt="图片" />
			<div class="text">
				<h2><a href="#">大标题大标题大标题大标题大标题大标题大标题大标题</a></h2>
				<p>介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文介绍文字介介绍文字介绍文字介绍文字介绍文字介绍文字</p>
			</div>
		</div>
		
		<div class="bar">
			<img src="img/1.jpg" alt="图片" />
			<div class="text">
				<h2><a href="#">大标题大标题大标题大标题大标题大标题大标题大标题</a></h2>
				<p>介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文介绍文字介介绍文字介绍文字介绍文字介绍文字介绍文字</p>
			</div>
		</div>
		
		<div class="bar">
			<img src="img/1.jpg" alt="图片" />
			<div class="text">
				<h2><a href="#">大标题大标题大标题大标题大标题大标题大标题大标题</a></h2>
				<p>介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文介绍文字介介绍文字介绍文字介绍文字介绍文字介绍文字</p>
			</div>
		</div>

	</div> -->

</div>


<script src="getId.js"></script>
<script src="doMove.js"></script>
<script src="main.js"></script>
</body>
</html>
复制代码

当前:onload之后就可以执行,先向左、停下后文字标题向上跑,之后文字标题回去,图片再向左 效果截图:

需求:鼠标移上暂停标题向下和图片向左,鼠标移开继续进行
备注
目前我的思路是:因为定时器的最后一个回调函数是重头开始,也就是说,直接用if判断再清除定时器是无用功,最底层的回调函数已经放在任务队列了,所以要判断的是什么情况下把它放入任务队列中,对比可以在鼠标悬停的时候改变一个变量值,然后在最底层使用回调函数前根据这个变量来判断要不要执行这个回调函数。这样行得通吗?行的通的,因为if判断再变量赋值是同步任务,比定时器要先执行。 然后鼠标移开就再调用一边动画函数,到这时候有个问题,i的问题,因为i的自加是同步任务的,它会被加1,如果直接调用会让图片直接跑到下下张图片,因为i会加一次,所以又要判断一次,根据那个变量判断,或不加重置变量或加不重置变量。

有个问题:onmouseover也是个异步任务,所以是先执行的延迟1s的定时器“快”还是后执行无延迟的onmouseover"快" 【答案:onmouseover“快”】

昨天在试这个思路的时候有个问题,就是.text这个div的层级是最高的,导致它出现后会遮住我想绑定事件对应的元素,解决方案肯定有,最low就是设置一堆if判断,但费时费力,我想能不能用元素获取焦点的方法解决,但发现这部分知识牵扯到【事件冒泡】,所以还是先放放,过段时间再来看。

转载于:https://juejin.im/post/5b65187e6fb9a04fac0d30cd

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值