纯css实现的无缝滚动

2024-01-18 15:48 小编

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>css实现的无缝滚动</title>

<meta name="keywords" content="">

<meta name="description" content="">

<style>

#outer{

width: 600px;

height: 200px;

overflow: hidden;

position: relative;

}

#inner{

overflow: hidden;

width: 1800px;

height: 200px;

position: absolute;

left: 0px;

top: 0px;

animation:move 10s cubic-bezier(0.36, 0.35, 1, 1) infinite;

}

#inner img{

width: 150px;

height: 200px;

float: left;

}

@keyframes move{

0%{left: 0px;}

100%{left: -900px;}

}

</style>

</head>

<body>

<div id="outer">

<div id="inner">

<img src="01.jpg" alt="">

<img src="02.jpg" alt="">

<img src="03.jpg" alt="">

<img src="04.jpg" alt="">

<img src="05.jpg" alt="">

<img src="06.jpg" alt="">

<img src="01.jpg" alt="">

<img src="02.jpg" alt="">

<img src="03.jpg" alt="">

<img src="04.jpg" alt="">

<img src="05.jpg" alt="">

<img src="06.jpg" alt="">

</div>

</div>

<button>000000000</button>

<button>11111111111</button>

<script>

/*var btn1=document.getElementsByTagName('button')[0];

var btn2=document.getElementsByTagName('button')[1];

var outer=document.getElementById('outer');

var inner=document.getElementById('inner');

outer.onmouseover=function (){

inner.style.animationPlayState='paused';

}

outer.onmouseleave=function (){

inner.style.animationPlayState='running';

}*/

</script>

</body>

</html>

一、结构搭建:

可以使用ul li结构抱着img (我这里比较省事 直接把img仍在了div里边),两次divouter宽度小于内层inner的宽度便于改变内层left的值实现滚动。

二、滚动思想:

这里实现的无缝滚动,有两种基本的思想;

第一种:通过父元素的scrollLeft逐渐增加来实现;

第二种:通过css3translate来实现,这里采用的第二种;

三、滚动动画实现:

主要运用animation动画:

下边两个button按钮用JS实现控制无缝滚动的走停(js代码注释掉了)

这是比较丑陋的CSS无缝滚动 ,喜欢的直接复制拿走!


在线咨询 拨打电话

电话

13363039260

微信二维码

微信二维码