swiper 仿淘宝详情页面 视频图片切换

1、好兄弟,看一下是否是你需要的

 

2、废话不多说 直接上代码,复制粘贴一下 自己引用一下swiper.js和css 然后就可以开始玩儿了 

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />
		<title></title>
		<link rel="stylesheet" type="text/css" href="swiper.min.css" />
		<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
		<script src="swiper.min.js" type="text/javascript" charset="utf-8"></script>
		<!-- 阿里高清方案 -->
		<script>
			(function(doc, win) {
				var docEl = doc.documentElement,
					resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
					recalc = function() {
						var clientWidth = docEl.clientWidth;
						if(!clientWidth) return;
						docEl.style.fontSize = 100 * (clientWidth / 375) + 'px';
					};
				if(!doc.addEventListener) return;
				win.addEventListener(resizeEvt, recalc, false);
				doc.addEventListener('DOMContentLoaded', recalc, false);
			})(document, window);
		</script>
		<style type="text/css">
			html,
			body {
				width: 100%;
				height: 100%;
				font-family: " Microsoft YaHei";
				position: relative;
				font-size: 14px;
				margin: 0;
			}
			
			a {
				text-decoration: none;
				outline: none;
				-webkit-tap-highlight-color: transparent;
			}
			
			.header {
				position: fixed;
				width: 100%;
				height: 0.45rem;
				z-index: 99;
			}
			
			.header .back {
				position: absolute;
				top: 0.06rem;
				left: 0.1rem;
				z-index: 9;
				width: 0.3rem;
				height: 0.3rem;
				font-size: 0.14rem;
				line-height: 0.3rem;
				text-align: center;
				border-radius: 0.15rem;
				background: rgba(0, 0, 0, 0.3);
				color: rgb(255, 255, 255);
				display: none;
			}
			
			.header>div {
				width: 100%;
				background: #fff;
				opacity: 0;
			}
			
			.headertitle {
				width: 50%;
				height: 0.45rem;
				line-height: 0.45rem;
				margin: auto;
				display: flex;
				justify-content: space-between;
				/*display: inline-block;*/
			}
			
			.headertitle a {
				width: 0.5rem;
				height: calc(100% - 0.03rem);
				text-align: center;
				display: inline-block;
				cursor: pointer;
				border-bottom: 0.03rem solid transparent;
				box-sizing: border-box;
			}
			
			.headertitle a.active {
				border-bottom: 0.03rem solid #FC3F78;
			}
			
			.case .swiper-slide img {
				width: 100%;
				height: 100%;
			}
			
			.swiper-container {
				width: 100%;
				height: 3.57rem;
			}
			
			.tit-lunbo {
				width: 2.31rem;
				height: .272rem;
				box-sizing: border-box;
				padding-left: 5%;
				background: #606060;
				/*position: absolute;*/
				border-radius: 17.5px;
				opacity: 0.5;
				margin-left: 0.1rem;
			}
			
			.banner {
				height: .22rem;
				line-height: .22rem;
			}
			
			.carousel {
				margin-bottom: .13rem;
				width: 100%;
				height: 3.57rem;
				position: relative;
			}
			
			.sc-text {
				color: #666666;
				font-size: 0.1rem;
			}
			
			.swiper-pagination-bullet {
				background: none;
				opacity: 1;
				border: 1px solid #FF4C81;
			}
			
			.swiper-pagination-bullet-active {
				background: #FF4C81;
			}
			/*视频*/
			
			.swiper-slideVideo {
				width: 100%;
				height: 100%;
				position: relative;
			}
			
			.video_btn {
				width: 0.6rem;
				height: 0.6rem;
				position: absolute;
				left: 0;
				top: 0;
				bottom: 0;
				right: 0;
				margin: auto;
			}
			
			.video_btn>img {
				width: 100%;
				height: 100%;
			}
			
			.swiper-slideVideo>video {
				width: 100%;
				height: 100%;
			}
			/*图片/视频切换*/
			
			.vAndi {
				width: 1rem;
				height: 0.2rem;
				position: absolute;
				left: 0;
				right: 0;
				margin: auto;
				bottom: 0.11rem;
				z-index: 9999;
				display: none;
			}
			
			.vAndiCont {
				width: 1rem;
				height: 0.2rem;
				display: flex;
				align-items: center;
				justify-content: space-between;
			}
			
			.vAndiCont>div {
				width: 0.42rem;
				height: 0.2rem;
				border-radius: 0.1rem;
				line-height: 0.2rem;
				background: #fff;
				color: #444444;
				font-size: 0.09rem;
				text-align: center;
			}
			
			.videoBtn:before {
				content: "";
				display: inline-block;
				width: 0;
				height: 0;
				border-left: 0.07rem solid #444444;
				border-top: 0.035rem solid transparent;
				border-bottom: 0.035rem solid transparent;
			}
			
			.videoBtn.SWactive:before {
				border-left: 0.07rem solid #fff;
				border-top: 0.035rem solid transparent;
				border-bottom: 0.035rem solid transparent;
			}
			
			.videoBtn.SWactive {
				background: #FE3F47;
				color: #fff;
			}
			
			.imgBtn.SWactive {
				background: #FE3F47;
				color: #fff;
			}
			
			.carousel .swiper-pagination {
				font-size: 0.2rem;
			}
			
			.carousel .swiper-pagination-custom {
				position: static !important;
				display: inline-block;
				background: #000;
				float: right;
				color: white;
				width: 0.40rem;
				height: 0.20rem;
				opacity: 0.5;
				line-height: 0.20rem;
				margin-bottom: 0.10rem;
				font-size: 12px;
				border-radius: 0.1rem;
				margin-right: 0.109rem;
			}
			
			body .rushtobuy {
				/*position: absolute;*/
				width: 100%;
				height: 0.41rem;
				background: url(../images/taoqianggou.png)0% 0% / 100% no-repeat;
				/*background-size:100% 100%*/
				color: #FFFFFF;
				font-size: 0.2rem;
				/*z-index: 10;*/
				/*margin-top: 10px;*/
			}
			
			body #rushtobuyjhs {
				background: url(../images/juhuasuan.png)0% 0% / 100% no-repeat;
			}
			
			body .rushtobuy>p:nth-of-type(1) {
				line-height: 0.41rem;
				margin-left: 0.045rem;
				display: inline-block;
			}
			
			body .rushtobuy>p:nth-of-type(2) {
				line-height: 0.41rem;
				font-size: 0.1rem;
				margin-left: 0.081rem;
				text-decoration: line-through;
				display: inline-block;
				vertical-align: top;
			}
			
			.weizhi {
				position: absolute;
				bottom: 0;
				z-index: 10;
				width: 100%;
				display: none;
			}
			
			#count-time {
				font-size: 0.1rem;
				float: right !important;
				display: block;
				width: 0.854rem;
				height: 100%;
				/*margin-right: 0.11rem;*/
			}
			
			#count-time .distance {
				font-family: PingFangSC-Regular;
				font-size: 0.1rem;
				color: #F91646;
				margin-left: 0.091rem;
				margin-top: 0.03rem;
			}
			
			#test span {
				/*vertical-align: top;*/
				display: inline-block;
				width: 0.145rem;
				height: 0.145rem;
				line-height: 0.145rem;
				background: #5C3410;
				color: white;
				margin-left: 0.01rem;
				margin-right: 0.01rem;
				text-align: center;
				border-radius: 0.02rem;
			}
			
			#test .loadtime {
				margin-top: 0.04rem;
				color: #5C3410;
			}
			
			.tqgorjhs {
				background: #f4f4f4;
			}
			
			#tqgxq {
				width: 100%;
				height: 0.41rem;
				background: url(../images/tqgxq.png)0% 0% / 100% no-repeat;
				margin-top: 0.054rem;
				margin-bottom: 0.02rem;
			}
			
			#jhsxq {
				width: 100%;
				height: 0.41rem;
				background: url(../images/jhsxq.png)0% 0% / 100% no-repeat;
				margin-top: 0.054rem;
				margin-bottom: 0.02rem;
			}
			
			.line-top {
				background: #F4F4F4;
				width: 100%;
				height: 0.044rem;
			}
			
			.line-top {
				background: #F4F4F4;
				width: 100%;
				height: 0.02rem;
			}
			
			#test .testendtime {
				width: 100%;
				color: #F91646;
				height: 100%;
				line-height: 0.41rem;
				text-align: center;
			}
			
			.go_down {
				font-size: 0.15rem;
				width: 100%;
				height: 0.46rem;
				background: rgba(0, 0, 0, 0.3);
				color: white;
				line-height: 0.46rem;
				padding: 0 0.09rem;
				position: absolute;
				top: 0;
				z-index: 2;
			}
			
			.go_down_btn {
				width: 0.68rem;
				display: inline-block;
				height: 0.32rem;
				background: #FF4C81;
				color: 0.14rem;
				position: absolute;
				top: 0.07rem;
				right: 0.16rem;
				z-index: 3;
				line-height: 0.32rem;
				text-align: center;
				border-radius: 0.04rem;
				cursor: pointer;
			}
			
			.lib-video {
				position: absolute;
				top: 0;
				height: 100%;
				width: 100%;
				z-index: 2;
			}
			
			.qiege {
				width: 100%;
				height: 0.2rem;
				background: #eee;
			}
			/*店铺信息*/
			
			.shopinfo {
				width: 100%;
				height: 1.1rem;
				background: #fff;
				padding-top: 0.15rem;
			}
			
			.infotop {
				padding: 0 0.14rem;
				display: flex;
				align-items: center;
				justify-content: space-between;
				height: 0.45rem;
				margin-bottom: 0.15rem;
			}
			
			.top_left {
				display: flex;
				align-items: center;
			}
			
			.infobot {
				display: flex;
				padding: 0 0.14rem;
				justify-content: space-between;
				color: #999999;
				font-size: 0.12rem;
			}
			
			.miaoshured {
				color: #FF5001;
				font-size: 0.14rem;
				margin: 0 0.05rem;
			}
			
			.shoppf {
				display: inline-block;
				width: 0.15rem;
				height: 0.15rem;
			}
			
			.top_img {
				width: 0.5rem;
				margin-right: 0.09rem;
				height: 0.5rem;
			}
			
			.top_img img {
				width: 100%;
				height: 100%;
			}
			
			.top_name p {
				color: #000000;
				font-size: 0.13rem;
			}
			
			.top_name .tm {
				margin-top: 0.04rem;
			}
			
			.top_right {
				color: #A0A0A0;
				font-size: 0.1rem;
			}
			/*相似推荐*/
			
			.xiangsiwrap {
				width: 100%;
				height: 2rem;
				background: #fff;
				padding: 0.13rem 0.11rem 0;
			}
			
			.xiangsiwrap div {
				width: 100%;
				height: 100%;
			}
			
			.xiangsiwrap .swiper-slide {
				width: 1.1433rem !important;
				margin: 0 0.01667rem;
			}
			
			.xiangsiwrap .swiper-slide .xsname {
				padding: 0 0.02rem;
				margin: 0.04rem 0;
				height: 0.14rem;
				display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 1;
				overflow: hidden;
			}
			
			.xiangsiwrap .swiper-slide .xsquanjin {
				height: 0.14rem;
				padding: 0 0.02rem;
				color: #F13B3A;
				margin: 0.04rem 0 0.06rem 0;
				font-size: 0.09rem;
			}
			
			.xiangsiwrap .swiper-slide .xsquan {
				padding: 0 0.02rem;
				color: #F13B3A;
				font-size: 0.09rem;
			}
			
			.xiangsiwrap .swiper-slide img {
				width: 100%;
				height: 1rem;
				display: inline-block;
				border-radius: 0.05rem;
			}
			/*看了又看*/
			
			.kanheader {
				width: 100%;
				height: 0.4rem;
				line-height: 0.4rem;
				background: #fff;
				padding: 0 0.14rem;
				font-size: 0.16rem;
				border-bottom: 1px solid #eee;
			}
			
			.kanwrapper {
				display: flex;
				/*align-content: space-between;*/
				justify-content: space-between;
				flex-wrap: wrap;
				background: #eee;
			}
			
			.kanwrapper .kanpro {
				width: 1.85rem;
				height: 2.32rem;
				background: #fff;
				margin-bottom: 0.05rem;
			}
			
			.kanpro .pro_img {
				width: 1.85rem;
				height: 1.85rem;
			}
			
			.kanpro .pro_img img {
				width: 100%;
				height: 100%;
			}
			
			.kanpro .pro_top,
			.pro_bot {
				display: flex;
				padding: 0 0.04rem 0 0.07rem;
				justify-content: space-between;
			}
			
			.kanpro .pro_top {
				margin: 0.02rem 0 0.09rem 0;
				color: #9A9A9A;
				font-size: 0.10rem;
			}
			
			.kanpro .pro_bot {
				color: #F13B3A;
				font-size: 0.10rem;
			}
			
			.kanpro .pro_bot .quanhou {
				font-size: 0.16rem;
			}
			
			.coverback {
				display: none;
				position: fixed;
				width: 2rem;
				height: 1rem;
				background: #fff;
				border-radius: 5px;
				/*border: 1px solid gray;*/
				z-index: 1000;
				top: 0;
				left: 0;
				bottom: 0;
				right: 0;
				margin: auto;
			}
			
			.coverback .backtitle {
				border-bottom: 1px solid #f4f4f4;
				padding: 0.12rem;
				line-height: 0.2rem;
			}
			
			.coverback .goback {
				display: inline-block;
				width: 100%;
				height: 0.3rem;
				line-height: 0.3rem;
				text-align: center;
				/*color: #000;*/
			}

			
		
		</style>
	</head>

	<body>
		<div id="wrapper">

			<div class="header">
				<a href="appfun:productdetail:pop" class="back iconfont icon-arrow-left "></a>
				<a href="rule.html" class="rules iconfont icon-arrow-right "></a>
			</div>
			<!--轮播-->
			<div class="carousel">
				<div class="swiper-container case">
					<div class="swiper-wrapper bsd load-div">
						<div class="swiper-slide">
							<div class="swiper-slideVideo">
								<video src="https://cloud.video.taobao.com/play/u/1699136323/p/2/e/6/t/1/50119750594.mp4?appKey=38829" id="slideVideo" webkit-playsinline="true" playsinline="true" width="100%" height="100%" type="video/mp4" preload="" x-webkit-airplay="true" x5-playsinline="true" poster="https://img.alicdn.com/i1/1699136323/O1CN01Rv0Rk91wZypQKwRH0_!!1699136323.jpg" x-webkit-airplay="true">
									<source type="video/mp4" src="https://cloud.video.taobao.com/play/u/1699136323/p/2/e/6/t/1/50119750594.mp4?appKey=38829">
								</video>
								<div class="video_btn">
									<img src="./playerBtn.png" />
								</div>
							</div>
						</div>
						<div class="swiper-slide"><img src="https://img.alicdn.com/i1/1699136323/O1CN01Rv0Rk91wZypQKwRH0_!!1699136323.jpg" alt="">
						</div>
						<div class="swiper-slide"><img src="https://img.alicdn.com/i1/1699136323/O1CN015JtrrY1wZyohly2Wi_!!1699136323.jpg" alt="">
						</div>
						<div class="swiper-slide"><img src="https://img.alicdn.com/i2/1699136323/O1CN01ZYvfAc1wZyoqp26ZU_!!1699136323.jpg" alt="">
						</div>
						<div class="swiper-slide"><img src="https://img.alicdn.com/i1/1699136323/O1CN01FfmkjV1wZyoh5C9rT_!!1699136323.jpg" alt="">
						</div>
					</div>
					<!--视频/图片按钮-->
					<div class="vAndi">
						<div class="vAndiCont">
							<div class="videoBtn SWactive">
								视频
							</div>
							<div class="imgBtn">
								图片
							</div>
						</div>
					</div>
					<div class="weizhi">
						<!--分页-->
						<div class="swiper-pagination"></div>
					</div>
				</div>
			</div>
		</div>
	</body>

</html>
<script type="text/javascript">
	$(".video_btn").on("click", function() {
		$("#slideVideo").trigger('play');
		$(".video_btn").hide();
		return false;
	})
	$(".swiper-slideVideo").on("click", function() {
		$("#slideVideo").trigger('pause');
		$(".video_btn").show();
	})
	$("#slideVideo").on("ended", function() {
		$(".video_btn").show();
	})
	$(".vAndi").show();
	$(".videoBtn").on("click", function() {
		$(".videoBtn").addClass("SWactive");
		$(".imgBtn").removeClass("SWactive");
		swiper1.slideTo(0, 1000, false);
		$(".weizhi").hide();
		return false;
	})
	$(".imgBtn").on("click", function() {
		$(".imgBtn").addClass("SWactive");
		$(".videoBtn").removeClass("SWactive");
		swiper1.slideTo(1, 1000, false);
		$("#slideVideo").trigger('pause');
		$(".video_btn").show();
		$(".weizhi").show();
		return false;
	})
	var swiper1 = new Swiper('.case', {
		pagination: '.swiper-pagination',
		paginationType: 'custom',
		//修改显示数量的下标
		paginationCustomRender: function(swiper, current, total) {
			var current1 = current - 1;
			var total1 = total - 1;
			return current1 + ' / ' + total1;
		},
		paginationClickable: true,
		//							loop: true,

		updateOnImagesReady: true,
		// autoplay : 3000,
		lazyLoading: true,
		lazyLoadingInPrevNext: true,
		lazyLoadingInPrevNextAmount: 2,
		onSlideChangeStart: function(swiper) {
			var sliderIndex = swiper.activeIndex;
			$("#slideVideo").trigger('pause');
			$(".video_btn").show();
			if(sliderIndex == 0) {
				$(".videoBtn").addClass("SWactive");
				$(".imgBtn").removeClass("SWactive");
				$(".weizhi").hide();
			} else {
				$(".imgBtn").addClass("SWactive");
				$(".videoBtn").removeClass("SWactive");
				$(".weizhi").show();
			}
		}
	});
</script>

 3、写的有点乱 但是很好用 swiper相关属性就不介绍了  自己看Api文档很详细

posted on 2019-03-14 16:21  托尼-斯塔克  阅读(729)  评论(0编辑  收藏  举报

导航