<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
margin: 0;
padding: 0;
}
ul {
width: 100vw;
display: flex;
padding: 0;
}
ul li {
display: block;
width: 20vw;
text-align: center;
}
ul li.active {
border-bottom: 1px solid red;
}
.box {
width: 98vw;
overflow: hidden;
border: 3px solid blue;
}
.box .list {
width: 100%;
height: 100%;
display: flex;
vertical-align: top;
line-height: 0;
}
.box .list img {
width: 100vw;
height: 50vh;
}
.line {
width: 20vw;
height: 1px;
background-color: red;
position: absolute;
top: 35px;
}
</style>
</head>
<body>
<ul>
<li>tab1</li>
<li>tab2</li>
<li>tab3</li>
<li>tab4</li>
<li>tab5</li>
</ul>
<div class="line"></div>
<div class="box swiper-container">
<div class="list swiper-wrapper">
<div class="swiper-slide"><img src="./img/img01.png" alt=""></div>
<div class="swiper-slide"><img src="./img/img02.png" alt=""></div>
<div class="swiper-slide"><img src="./img/img03.png" alt=""></div>
<div class="swiper-slide"><img src="./img/img04.png" alt=""></div>
<div class="swiper-slide"><img src="./img/img05.png" alt=""></div>
</div>
</div>
<script src="js/swiper.js"></script>
<script>
const line = document.querySelector(".line");
let startX = 0;
var mySwiper = new Swiper('.swiper-container', {
direction: 'horizontal',
resistanceRatio: 0,
on: {
touchStart: function (swiper, event) {
startX = event.targetTouches[0].pageX;
console.log(startX);
},
touchMove: function (swiper, event) {
let x = event.targetTouches[0].pageX;
let index = swiper.activeIndex;
if((index==0 && startX-x>0) || (index==4 && startX-x<0) || (index!==0 && index!==4)){
line.style.transform = `translateX(${(-x + startX) * 0.2}px)`;
}
},
slideChange: function (swiper, event) {
line.style.transform = '';
line.style.left = (swiper.activeIndex) * 20 + 'vw';
}
}
})
</script>
</body>
</html>
