js轮显代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片幻灯特效</title>
<script type="text/javascript">
function Na(){
		this.shwNaNa={//图片焦点轮显
				boxWidth:750,boxHeight:350,imgSrc:"",imgLink:"",imgTitle:"",btnWidth:25,btnHeight:22,btnBoxRight:10,btnBoxBottom:20,btnFontSize:10,btnBgColor:"#666",btnMouseOverBgColor:"#939",btnFontColor:"#fff",btnMouseOverFontColor:"#fff",$:function(id){return document.getElementById(id)},
				//参数分割使用@
				start:function(){
						if(this.imgSrc==""){alert('请设置图片参数!');return;};
						if(isNaN(this.boxWidth)||isNaN(this.boxHeight)||isNaN(this.btnWidth)||isNaN(this.btnHeight)||isNaN(this.btnBoxRight)||isNaN(this.btnBoxBottom)||isNaN(this.btnFontSize)){alert('宽度大小类参数设置错误,请设置纯数字!');return;}
						document.write("<div id=\"naBOX\" style=\"position:absolute;border:#efefef 1px solid;background-color:#fff;width:"+this.boxWidth+"px; height:"+this.boxHeight+"px;overflow:hidden;\"><div id=\"naPicBox\"></div><div id=\"naTitle\"></div><div id=\"naLinka\" style=\" position:absolute;  right:"+this.btnBoxRight+"px; bottom:"+this.btnBoxBottom+"px;\"></div></div>");
						var objImgBox=this.$("naPicBox");
						var objTitle=this.$("naTitle");
						var objLink=this.$("naLinka");
						var allImgs=this.imgSrc.split("@");
						var allLinks=objLink.getElementsByTagName("a");
						var imgLinks=this.imgLink.split("@");
						var parentObj=this;
						//根据图片数量初始化按钮与图片
						for(var i=0;i<allImgs.length;i++){
								objLink.innerHTML+="<a style='float:left; font-family:Arial, Helvetica, sans-serif;font-size:"+this.btnFontSize+"px;margin-left:2px;background-color:"+this.btnBgColor+"; border:#efefef 1px solid; color:"+this.btnFontColor+";text-decoration:none;width:"+this.btnWidth+"px;height:"+this.btnHeight+"px; text-align:center;line-height:"+this.btnHeight+"px;' href='javascript:void(0)'>"+(i+1)+"</a>";	
								objImgBox.innerHTML+=((i<imgLinks.length&&imgLinks.length>0&&imgLinks[0]!="")?"<a id='a"+i+"' style='display:none;' href='"+imgLinks[i]+"' target='_blank'><img style='border:none;' src='"+allImgs[i]+"' /></a>":"<img id='a"+i+"'  style='display:none;border:none;' src='"+allImgs[i]+"' />");
							}
						objImgBox.innerHTML+="<span id='tmsg'  style=\"float:left;margin:20px;color:333\"></span>";	
						var msg=this.$("tmsg");
						
						//创建可控的全局变化时钟操作函数
						clockPlay(0);
						var sPo=null;
						var ImgNext=null;
						var gi=0;
						var ss=0;
						var loadedImg="";
						var isLoading=false;//加载程序是否正在运行
						function clockPlay(imgId){
								if(imgId==allImgs.length)imgId=0;
								var test=setInterval(tt,100);
								if(ImgNext!=null)clearTimeout(ImgNext);
								function tt(){
										if(checkImgLoaded(imgId)){//检查图片是否已加载,如已加载过就显示
												isLoading=false;//开户下一张图片的加载许可
												msg.style.display="none";	
												sImg(imgId);
												rColorBtn(imgId);	
												if(ss==0)ImgNext=setTimeout(function(){clockPlay((parseInt(imgId)+1))},5000);												
												clearInterval(test);												
											}else{
												if(isLoading==false)LoadImg(imgId);//加载图片
												isLoading=true;//图片正在加载
												msg.style.display="";
												msg.innerHTML="正在加载图片......";
										}
										for(var i=0;i<allLinks.length;i++){
											allLinks[i].οnmοuseοver=function(){
												clockPlay(parseInt(this.innerHTML)-1);											
												ss=1;
												}
											allLinks[i].οnmοuseοut=function(){
												ss=0;
												ImgNext=setTimeout(function(){clockPlay((parseInt(imgId)+1))},5000);}	
										}
									}
							}		
						function rColorBtn(id){
								var a=objLink.getElementsByTagName("a");
								for(var i=0;i<a.length;i++){
										a[i].style.backgroundColor=parentObj.btnBgColor;
										a[i].style.color=parentObj.btnFontColor;
									}
								a[id].style.backgroundColor=parentObj.btnMouseOverBgColor;
								a[id].style.color=parentObj.btnMouseOverFontColor;
							}	
						function sImg(id){
								if(sPo!=null)try{clearInterval(sPo)}catch(e){};
								var imgs=objImgBox.getElementsByTagName("img");
								for(var i=0;i<imgs.length;i++){
										if(i!=id){document.getElementById("a"+i).style.display="none"}else{document.getElementById("a"+i).style.display=""}
									}								
								gi=0;
								var objImg=document.getElementById("a"+id);
								objImg.style.filter="alpha(opacity="+gi+");";
    							objImg.style.opacity=gi/100;
								sPo=setInterval(gPo,30);
								function gPo(){
										gi=gi+5;
										objImg.style.filter="alpha(opacity="+gi+");";
										objImg.style.opacity=gi/100;
										if(gi>99)clearInterval(sPo);
									}	
							}	
						function checkImgLoaded(imgId){
								return loadedImg.indexOf(allImgs[imgId])>-1?true:false;
							}	
						function LoadImg(imgId){//图片加载程序
								var img=new Image();
								img.src=allImgs[imgId];
								if(img.complete==true){isLoading=false;loadedImg+=allImgs[imgId];}else{img.onload = function(){img.οnlοad=null;isLoading=false;loadedImg+=allImgs[imgId];}}
							}
				}
			}
	}
</script>
</head>


<body>
<script type="text/javascript">
		var myNa=new Na();
		myNa.shwNaNa.imgSrc="/jscss/demoimg/wall1.jpg@/jscss/demoimg/wall2.jpg@jscss/demoimg/wall3.jpg";
		myNa.shwNaNa.imgLink="@";//每张图片对应的链接,@分开,不链保持为空就可
		myNa.shwNaNa.boxWidth=560;
		myNa.shwNaNa.boxHeight=392;
		myNa.shwNaNa.start();
</script>
</body>
</html>


JavaScript五轮播图代码主要是通过DOM操作和定时器实现的。下面是一种可能的实现方式: HTML代码: ``` <div class="slideshow"> <img src="image1.jpg" alt="image1" class="slide"> <img src="image2.jpg" alt="image2" class="slide"> <img src="image3.jpg" alt="image3" class="slide"> <img src="image4.jpg" alt="image4" class="slide"> <img src="image5.jpg" alt="image5" class="slide"> </div> ``` CSS代码: ```css .slideshow { width: 800px; height: 400px; position: relative; overflow: hidden; } .slide { width: 100%; height: 100%; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 1s ease-in-out; } .slide.active { opacity: 1; } ``` JavaScript代码: ```javascript const slides = document.querySelectorAll('.slide'); let currentSlide = 0; function showSlide(n) { slides.forEach(slide => slide.classList.remove('active')); slides[n].classList.add('active'); } function nextSlide() { currentSlide = (currentSlide + 1) % slides.length; showSlide(currentSlide); } setInterval(nextSlide, 3000); ``` 以上代码中,我们首先通过`querySelectorAll`方法选取所有的幻灯片(即图片元素),然后使用一个变量`currentSlide`来追踪当前显示的幻灯片的索引。`showSlide()`函数用于将指定索引的幻灯片设置为激活状态,即改变其透明度为1,其他幻灯片则透明度为0。`nextSlide()`函数用于计算下一个要显示的幻灯片的索引,并调用`showSlide()`函数进行显示。最后,使用`setInterval()`方法每隔3秒调用一次`nextSlide()`函数,实现自动轮播效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值