快捷搜索:  汽车  科技

css中js轮播效果(纯jscss3的轮播图简单实用)

css中js轮播效果(纯jscss3的轮播图简单实用)<li><img src="https://img.aigexing.comimg2/3.png" alt="5"/></li> <li><img src="https://img.aigexing.comimg2/2.png" alt="4"/></li> <ul> <li><img src="https://img.aigexing.comimg2/1.png" alt="3"/></li> <li><img src="https://img.aigexing.comimg2/0.png" alt="2"/></li>

之前为大家带来过轮播图的写法 因为里面用到了运动框架 所以用起来还是很多不懂的 今天优化了一下写法 并且增加了左右切换

先看下html结构

<div id="container">

<div id="list" style="left:0; ">

<ul>

<li><img src="https://img.aigexing.comimg2/1.png" alt="3"/></li>

<li><img src="https://img.aigexing.comimg2/0.png" alt="2"/></li>

<li><img src="https://img.aigexing.comimg2/2.png" alt="4"/></li>

<li><img src="https://img.aigexing.comimg2/3.png" alt="5"/></li>

<li><img src="https://img.aigexing.comimg2/4.png" alt="5"/></li>

</ul>

</div><!-- 存放图片的div -->

<div id="buttons">

<span class="on"></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div><!-- 小圆点控制 -->

<a href="javascript:;" id="prev" class="arrow">&lt;</a>

<a href="javascript:;" id="next" class="arrow">&gt;</a><!-- 左右切换 -->

3

下面开始编写js脚本

老规矩 先把想要的东西拿到手

var container = document.getElementById('container');//获取大盒子

var list = document.getElementById('list');//获取第二层盒子

var ul=list.getElementsByTagName('ul')[0];//获取ul

var images=ul.getElementsByTagName('img');//获取img

var buttons = document.getElementById('buttons').getElementsByTagName('span');//获取好控制的span

var prev = document.getElementById('prev');//上一张

var next = document.getElementById('next');//下一张

var img=600;

ul.style.width=images.length*img 'px';//设置ul的宽度

先来左右切换的效果

next.onclick=function(){

list.style.left= parseInt(list.style.left)-600 'px';

}

prev.onclick=function(){

list.style.left= parseInt(list.style.left) 600 'px';

}

//代码重复 而且会有留白 可以封装成一个函数

改进下

function animate(pare){

list.style.left= parseInt(list.style.left) pare 'px';

}

next.onclick=function(){

if(list.style.left== -2400 'px'){

list.style.left=0 'px';

}

animate(-600);

}

prev.onclick=function(){

if(list.style.left== 0 'px'){

list.style.left= -2400 'px';

}

animate(600);

}

下面开始做小圆点变色和控制图片

依旧是写在一个函数里

css中js轮播效果(纯jscss3的轮播图简单实用)(1)

也可以切换了

move();

function move(){

for(var i=0;i<buttons.length;i ){

buttons[i].index=i;

buttons[i].onclick= function () {

for(var i=0;i<buttons.length;i ){

buttons[i].className=""

}

buttons[this.index].className="on";

list.style.left=-600*this.index "px";//控制切换

}

}

}

自动播放

play();

function play(){

var timer=setInterval(function(){

next.onclick();

} 2000)

}

剩下就是左右切换 下面小圆点跟随了

需要给个变量

var index =1;

function setOut(){

for(var i=0;i<buttons.length;i ){

buttons[i].className=''";

break;

}

}

buttons[index-1].className="on"

}

分别在作于里面调用下这个函数

下面是全部代码

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

*{ margin: 0; padding: 0; text-decoration: none;}

body { padding: 20px;}

#container { width: 600px; height: 400px; border: 3px solid #333; overflow: hidden; position: relative;}

#list { height: 400px; position: absolute; z-index: 1;transition: all 1s;}

#list ul li{width: 600px;list-style: none;float: left;}

#list img { min-width: 100%;}

#buttons { position: absolute; height: 10px; width: 100px; z-index: 2; bottom: 20px; left: 250px;}

#buttons span { cursor: pointer; float: left; border: 1px solid #fff; width: 10px; height: 10px; border-radius: 50%; background: #333; margin-right: 5px;}

#buttons .on { background: orangered;}

.arrow { cursor: pointer; display: none; line-height: 39px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 40px; position: absolute; z-index: 2; top: 180px; background-color: RGBA(0 0 0 .3); color: #fff;}

.arrow:hover { background-color: RGBA(0 0 0 .7);}

#container:hover .arrow { display: block;}

#prev { left: 20px;}

#next { right: 20px;}

</style>

</head>

<body>

<div id="container">

<div id="list" style="left:0; ">

<ul>

<li><img src="https://img.aigexing.comimg2/1.png" alt="3"/></li>

<li><img src="https://img.aigexing.comimg2/0.png" alt="2"/></li>

<li><img src="https://img.aigexing.comimg2/2.png" alt="4"/></li>

<li><img src="https://img.aigexing.comimg2/3.png" alt="5"/></li>

<li><img src="https://img.aigexing.comimg2/4.png" alt="5"/></li>

</ul>

</div><!-- 存放图片的div -->

<div id="buttons">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<a href="javascript:;" id="prev">&lt;</a>

<a href="javascript:;" id="next">&gt;</a>

</div>

<script>

window.onload=function(){

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

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

var ul = list.getElementsByTagName('ul')[0];

var images = ul.getElementsByTagName('img');

var buttons = document.getElementById('buttons').getElementsByTagName('span');

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

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

var img = 600;

var index = 1

ul.style.width = images.length * img 'px';

function setOut() {

for (var i = 0; i < buttons.length; i ) {

if (buttons[i].className == 'on') {

buttons[i].className = ''

break;

}

}

buttons[index - 1].className = 'on'

}

function animate(pare){

list.style.left= parseInt(list.style.left) pare 'px';

}

next.onclick=function(){

if(list.style.left== -2400 'px'){

list.style.left=0 'px';

}

if(index==buttons.length){

index=1;

}else{

index ;

}

animate(-600);

setOut();

}

prev.onclick=function(){

if(list.style.left== 0 'px'){

list.style.left= -2400 'px';

}

if(index==1){

index=buttons.length;

}else{

index--;

}

animate(600);

setOut();

}

move();

function move(){

for(var i=0;i<buttons.length;i ){

buttons[i].index=i;

buttons[i].onclick= function () {

for(var i=0;i<buttons.length;i ){

buttons[i].className=""

}

buttons[this.index].className="on";

list.style.left=-600*this.index "px";

}

}

}

paly();

function paly(){

var timer=setInterval(function () {

next.onclick();

} 2000)

}

}

</script>

</body>

</html>

css中js轮播效果(纯jscss3的轮播图简单实用)(2)

猜您喜欢: