图片切换+滑动切换

  • 样式
	<style>
		*{
			padding: 0;
			margin: 0;
		}
		
		html {
			height: 100%;
		}

		body {
			width: 100%;
			height: 100%;
			margin: 0;
			overflow: hidden;
		}		
		
		li{
			list-style: none;
		}

		.wrap {
			position: relative;
			overflow: hidden;
		}

		.box {
			position: absolute;
			list-style: none;
			left: 0;
			top: 0;
			padding: 0;
			margin: 0;
		}

		.box li {
			float: left;
		}

		.box {
			position: relative;
			height: 200px;
			width: 100%;
			top: 0;
			bottom: 0;
			left: 0;
			right: 0;
		}

		.box1 {
			height: 200px;
			width: 750px;
			text-align: center;
		}
		.box1 img{
			height: 100%;
		}
		
		/* 小图样式 */
		.small_img{
			width: 100%;
			height: 50px;
			display: flex;
			margin-top: 5px;
		}
		.small_img li {
			flex: 1;
			text-align: center;
		}
		.small_img .active {
			border: 1px solid red;
		}
		.small_img li img{
			height: 100%;
		}
	</style>
  • html
<body>
   	<div class="wrap">
   		<!-- 大图 -->
   		<ul class="box">
   			<li>
   				<div class="box1 box2"><img src="img/a1.png" ></div>
   			</li>
   			<li>
   				<div class="box1 box3"><img src="img/a2.png" ></div>
   			</li>
   			<li>
   				<div class="box1 box4"><img src="img/a3.png" ></div>
   			</li>
   			<li>
   				<div class="box1 box5"><img src="img/a4.png" ></div>
   			</li>
   			<li>
   				<div class="box1 box6"><img src="img/a5.png" ></div>
   			</li>
   		</ul>
   		<!-- 小图 -->
   		<ul class="small_img">
   			<li data-id = "0" class="active"><img src="img/a1.png" ></li>
   			<li data-id = "1"><img src="img/a2.png" ></li>
   			<li data-id = "2"><img src="img/a3.png" ></li>
   			<li data-id = "3"><img src="img/a4.png" ></li>
   			<li data-id = "4"><img src="img/a5.png" ></li>
   		</ul>
   	</div>
   </body>
</html>
  • js
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.js"></script>
   	<script>
   		// 设置盒子的宽度
   		$('.box').css('width', $('.box li').length * 100 + '%');
   		$('.box li').css('width', 1 / $('.box li').length * 100 + '%');

   		// 初始化手指坐标点
   		var startPoint = 0;
   		var startEle = 0;
   		//手指按下
   		$('.wrap').on("touchstart", function(e) {
   			startPoint = e.originalEvent.changedTouches[0].pageX;
   			startEle = $('.box').offset().left;
   		});
   		
   		//手指滑动
   		$('.wrap').on("touchmove", function(e) {
   			var currPoint = e.originalEvent.changedTouches[0].pageX;
   			var disX = currPoint - startPoint;
   			var left = startEle + disX;
   			$('.box').css('left', left + 'px')
   		});
   		
   		//当手指抬起的时候,判断图片滚动离左右的距离
   		$('.wrap').on("touchend", function(e) {				
   			var left = $('.box').offset().left;
   			// 判断正在滚动的图片距离左右图片的远近,以及是否为最后一张或者第一张
   			var currNum = Math.round(-left / $('.box li')[0].offsetWidth);
   			currNum = currNum >= ($('.box li').length - 1) ? $('.box li').length - 1 : currNum;//右边界检测
   			currNum = currNum <= 0 ? 0 : currNum;//左边界检测
   			$('.box').css('left', -currNum * $('.wrap')[0].offsetWidth + 'px');
   			$('.small_img li').removeClass('active');
   			$('.small_img li').each(function (index,element) {
   				if($(element).attr('data-id') == currNum){
   					$(element).addClass('active')
   				}
   			})
   		})
   				
   		//点击小图移动到对应大图
   		$('.small_img').on('click','li',function(){
   			$('.box').css('left', -$(this).attr('data-id') * $('.wrap')[0].offsetWidth + 'px');
   			$('.small_img li').removeClass('active');
   			$(this).addClass('active');
   		})
   	</script>

呈现
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值