手写无缝轮播$鼠标移入暂停移除轮播

无缝轮播
使用插件Swiper没找到鼠标移入立即暂停功能,需求是并排几张图片无缝滑动,鼠标移入立即停止,鼠标移除立即滚动。
六个展示位,七个内容
html代码

<ul class="div">
		<li style="background-color:#cca6b5">内容一</li>
		<li style="background-color:#1cabba">内容二</li>
		<li style="background-color:#1ffff5">内容三</li>
		<li style="background-color:#1bbbaa">内容四</li>
		<li style="background-color:#1f44b5">内容五</li>
		<li style="background-color:#1f4005">内容六</li>
		<li style="background-color:#17a6b5">内容七</li>
	</ul>

css样式

ul{
			width: 1200px;
			height: 100px;
			list-style: none;
			position: relative;
			border: 1px solid #ccc;
			margin: 100px auto;
			padding: 0px;
			overflow: hidden;
		}
		li{
			position: absolute;
			top: 0;
			height: 100px;
			width: 200px;
			text-align: center;
			line-height: 100px;
			border-left: 1px solid #f1f1f1;
			cursor: pointer;
		}

js代码
addEventListener前用jquery选择器不知道为什么不起作用,这里直接原生js选取元素

var num = 0;
		var dis = 1;
		for (var i = 0; i < 7; i++) {
			num = 200*i -200 + 'px';
			$('.div').children().eq(i).css('left',num)
		}
		function autoplay(){
			for (var i = 0; i < 7; i++) {
				// 获取每一个元素的相对定位left值
				var leftData = $('.div').children().eq(i).position().left;
				var leftNum = leftData - dis + 'px';
				// 设置元素移动
				 $('.div').children().eq(i).css('left',leftNum);
				 // 判断如果元素超过界限把元素设置在首位
				if(leftData < -200){
					$('.div').children().eq(i).css('left','1200px')
					$('.div').prepend($('.div').children().eq(i));
				}
			}
		}
		// 元素自动轮播
		var interval = setInterval(autoplay,20)
		// 鼠标移入
		document.getElementsByClassName('div')[0].addEventListener('mouseenter',function(event){
    	    clearInterval(interval)
    	});
    	// 鼠标移除
    	document.getElementsByClassName('div')[0].addEventListener('mouseleave',function(event){
    	    interval = setInterval(autoplay,20)
    	});
    	
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于无缝轮播,可以通过原生JS手写实现。下面是一个简单的无缝无限轮播的carousel实现,你可以参考一下: HTML部分: ```html <div class="carousel"> <ul class="carousel-list"> <li><img src="img1.jpg"></li> <li><img src="img2.jpg"></li> <li><img src="img3.jpg"></li> <li><img src="img4.jpg"></li> </ul> </div> ``` CSS部分: ```css .carousel { position: relative; overflow: hidden; width: 600px; height: 400px; } .carousel-list { position: absolute; left: 0; top: 0; width: 10000px; height: 400px; margin: 0; padding: 0; list-style: none; } .carousel-list li { float: left; width: 600px; height: 400px; margin: 0; padding: 0; } ``` JS部分: ```javascript var carousel = document.querySelector('.carousel'); var carouselList = document.querySelector('.carousel-list'); var carouselItems = document.querySelectorAll('.carousel-list li'); var carouselWidth = carousel.offsetWidth; var currentIndex = 0; // 克隆第一张图片,并放到最后 var firstItem = carouselItems[0].cloneNode(true); carouselList.appendChild(firstItem); // 点击左右按钮的事件处理函数 function handleButtonClick(event) { var target = event.target; if (target.classList.contains('prev')) { currentIndex--; if (currentIndex < 0) { currentIndex = carouselItems.length - 1; carouselList.style.left = -currentIndex * carouselWidth + 'px'; } } else if (target.classList.contains('next')) { currentIndex++; if (currentIndex >= carouselItems.length) { currentIndex = 0; carouselList.style.left = 0; } } var left = -currentIndex * carouselWidth; carouselList.style.left = left + 'px'; } // 绑定左右按钮的事件 var prevBtn = document.createElement('button'); prevBtn.classList.add('prev'); prevBtn.innerText = '上一张'; prevBtn.addEventListener('click', handleButtonClick); var nextBtn = document.createElement('button'); nextBtn.classList.add('next'); nextBtn.innerText = '下一张'; nextBtn.addEventListener('click', handleButtonClick); carousel.appendChild(prevBtn); carousel.appendChild(nextBtn); ``` 这段代码实现了无限轮播,并且可以通过左右按钮控制图片的切换。你可以将这段代码复制到本地运行,看看效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值