JSFiddle - React, Tailwind, and code Playground
by 亮 薛
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box">
<div class="content">
<div class="item">
<img src="https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_a48e528928742074ab69f446045518bd.jpeg?from=3067671334" alt="">
</div>
<div class="item">
<img src="https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_a48e528928742074ab69f446045518bd.jpeg?from=3067671334" alt="">
</div>
<div class="item">
<img src="https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_a48e528928742074ab69f446045518bd.jpeg?from=3067671334" alt="">
</div>
<div class="item">
<img src="https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_a48e528928742074ab69f446045518bd.jpeg?from=3067671334" alt="">
</div>
</div>
</div>
</body>
</html>
CSS
* {
padding: 0;
margin: 0;
vertical-align: top;
}
#box {
width: 840px;
height: 200px;
outline: 1px solid pink;
margin: 50px auto;
overflow: hidden;
}
img {
height: 200px;
width: 200px;
border-radius: 10px;
}
.content {
/* width: 100%; */
height: 200px;
display: flex;
outline: 3px solid black;
overflow: hidden;
position: relative;
top: 0;
left: 0;
}
.item {
border-radius: 10px;
margin-right: 10px;
height: 200px;
width: 200px;
}
JavaScript
// https://p26.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_a48e528928742074ab69f446045518bd.jpeg?from=3067671334
var speed = 4; //初始化速度
//获取节点
var Obox = document.getElementById("box");
var Ocontent = document.getElementsByClassName("content")[0];
console.log(Ocontent);
var Oitem = document.getElementsByClassName("item");
//图片内容
Ocontent.innerHTML += Ocontent.innerHTML;
//设置ul的宽度使图片可以放下
Ocontent.style.width = Oitem.length * 210 + 'px';
var changeLeft = 0;
function move() {
changeLeft -= speed;
//Ocontent.offsetleft,往左偏移为负数
//Ocontent.offsetwidth两组图的总宽度
if (changeLeft < -(Ocontent.offsetWidth / 2)) { //向左滚动,当靠左的图4移出边框时
Ocontent.style.left = 0;
changeLeft = 0;
} else {
Ocontent.style.left = changeLeft + 'px';
}
}
var timer = setInterval(move, 30); //全局变量 ,保存返回的定时器
// console.log(timer);
Obox.addEventListener('mouseout', function() {
timer = setInterval(move, 30);
}, false);
Obox.addEventListener('mousemove', function() {
clearInterval(timer); //鼠标移入清除定时器
}, false);