js轮播图(点击,自动,悬停,悬停加轮播)

1.JavaScript中的轮播图

一:点击方式:

步骤:

1)获取所有img对象;
2)遍历这些对象的同时设置自定义属性index,以及给每个对象添加点击事件;
3)在点击事件方法中,通过当前对象求出index,把index当作imgs[ ] 的下标,求出src;
4)设置背景;

<body>
		<ul class="baidu">
			<li><img src="10.jpg" alt="" /></li>
			<li><img src="11.jpg" alt="" /></li>
			<li><img src="12.jpg" alt="" /></li>
			<li><img src="13.jpg" alt="" /></li>
		</ul>
		
		<script type="text/javascript">
		    //获取所有img对象
			var lis = document.getElementsByTagName("img");
			//遍历对象们,分别设置点击事件
			for(var i=0;i<lis.length;i++){
				lis[i].onclick=function(){
					console.log(this.src);
					//console.log(i)
					//单机哪张图片就换哪张做背景
					document.body.style.background="url("+this.src+")"
				}
			}
		</script>
</body>

二:自动轮播方式:
步骤:
1)获取所有img对象;
2)设置自增变量index=0;
3)遍历这些img对象,分别设置自定义属性;
4)设置定时器,每隔1秒回调一次方法,同时令index自增;如果index=图片的数量,则令index为0,否则根据index设置背景(imgs[index].src);

//设置自动轮播
<script>
			/*
			 * 一:通过"."的方式设置自定义属性
			 */
			//获取所有图片对象,并设置自定义属性index
			var imgs = document.querySelectorAll("img");
			var index = 0;
			for(var i=0;i<imgs.length;i++){
			  imgs[i].index = i;
			}
			//定义定时器
			var timer = setInterval(function(){
				if(index==imgs.length)
				index =  0;
				//轮播到哪张图是根据自增变量index来确定
				document.body.style.background = "url("+imgs[index].src+")"
				index++;
			},1000);
</script>

三:悬停方式:
步骤:
1)获取所有图片的对象;
2)遍历循环img对象,设置自定义属性index,以及添加悬停事件;
3)在每个img对象的悬停事件中,根据当前对象求出src,并设置为背景;

<body>
		<!--1.要求,鼠标移动到哪张图片,该图片就设为背景-->
		<ul class="baidu">
			<li><img src="10.jpg" alt="" /></li>
			<li><img src="11.jpg" alt="" /></li>
			<li><img src="12.jpg" alt="" /></li>
			<li><img src="13.jpg" alt="" /></li>
		</ul>
		
		<script type="text/javascript">
			//获取所有图片对象,并添加自定义属性index
			var imgs = document.querySelectorAll("img");//返回一个数组
			//给每个img对象添加index
			for(var i=0;i<imgs.length;i++){
				//1:通过”.”方式设置自定义属性
				//imgs[i].index = i; 
				//2: 通过setAttribute方法获取
				imgs[i].setAttribute("index",i);
				//给img设置悬停事件
				imgs[i].onmouseover = function(){
					//将该图片设置为背景
					//document.body.style.background="url("+this.src+")"; 通过“.”获取
					//通过getAttribute()获取
				    document.body.style.background="url("+imgs[this.getAttribute("index")].src+")";
	
				}
			}
		</script>
	</body>

四:悬停加轮播方式:

<body>
		<ul class="baidu">
			<li><img src="10.jpg" alt="" /></li>
			<li><img src="11.jpg" alt="" /></li>
			<li><img src="12.jpg" alt="" /></li>
			<li><img src="13.jpg" alt="" /></li>
		</ul>

		<script>
			//设置鼠标悬停换肤
			var index = 0;
			var j = 0;
			
			var imgs = document.getElementsByTagName("img"); //返回一个数组
			for(var i = 0; i < imgs.length; i++) {
				//给每个img添加index属性 
				// . 设置自定义属性
				imgs[i].index = i;
			   //set方法设置
			   imgs[i].setAttribute("index",i);
			   //给每个img添加鼠标悬停事件
				imgs[i].onmouseover = function() {
					clearInterval(timer); //
					document.body.style.background = "url(" + imgs[this.getAttribute("index")].src + ")"
					j = this.index;
				}
				imgs[i].onmouseout = function() {
					index = j + 1;
					timer = setInterval(function() {
						if(index == imgs.length) {
							index = 0;
						} else {
							document.body.style.backgroundImage = 'url(' + imgs[index].src + ')';
							index++;
						}
					}, 1000);
				}
			}

			//设置自动轮播
			var timer = setInterval(function() {
				if(index == imgs.length) {
					index = 0;
				} else {
					document.body.style.backgroundImage = 'url(' + imgs[index].src + ')';
					index++;
				}
			}, 1000);
		</script>
	</body>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用JavaScript实现自动播放无缝轮播图的示例代码: ```html <!-- HTML结构 --> <div class="carousel"> <div class="carousel-items"> <img src="image1.jpg" alt=""> <img src="image2.jpg" alt=""> <img src="image3.jpg" alt=""> <img src="image4.jpg" alt=""> </div> </div> ``` ```css /* CSS样式 */ .carousel { position: relative; overflow: hidden; } .carousel-items { position: absolute; display: flex; width: 400%; animation: carousel 20s infinite; } .carousel-items img { width: 25%; } @keyframes carousel { 0% { left: 0; } 20% { left: 0; } 25% { left: -100%; } 45% { left: -100%; } 50% { left: -200%; } 70% { left: -200%; } 75% { left: -300%; } 95% { left: -300%; } 100% { left: -400%; } } ``` ```javascript // JavaScript代码 const carousel = document.querySelector('.carousel'); const carouselItems = document.querySelector('.carousel-items'); const images = document.querySelectorAll('.carousel-items img'); let currentIndex = 0; let timer; function startCarousel() { timer = setInterval(() => { currentIndex++; if (currentIndex > images.length - 1) { currentIndex = 0; } carouselItems.style.transform = `translateX(-${currentIndex * 25}%)`; }, 2000); } function stopCarousel() { clearInterval(timer); } carousel.addEventListener('mouseenter', stopCarousel); carousel.addEventListener('mouseleave', startCarousel); startCarousel(); ``` 解释: 1. HTML结构中,我们使用一个div元素作为轮播图的容器,内部包含一个class为carousel-items的div元素,用于存放轮播项(这里使用了4张图片作为轮播项)。 2. CSS样式中,我们设置.carousel元素为相对定位,overflow为hidden,以便隐藏.carousel-items元素的溢出部分。.carousel-items元素为绝对定位,使用flex布局,宽度为400%(即每个轮播项的宽度为25%),并使用CSS动画carousel实现轮播效果。 3. JavaScript代码中,我们首先获取.carousel、.carousel-items和.carousel-items img元素,以及当前轮播项的索引值currentIndex和定时器timer。 4. startCarousel函数用于启动轮播,使用setInterval定时器实现自动播放功能。每次定时器触发时,currentIndex1,如果currentIndex大于轮播项的数量,则将其重置为0。然后,使用translateX属性将.carousel-items元素向左移动,以显示下一个轮播项。 5. stopCarousel函数用于停止轮播,使用clearInterval清除定时器。 6. 最后,我们为.carousel元素添mouseenter和mouseleave事件监听器,以便在鼠标悬停轮播图上时停止轮播,在鼠标离开轮播图时重新启动轮播。 --相关问题--: 1. 如何使用JavaScript实现手动切换轮播项? 2. 如何在轮播图中添导航点? 3.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值