php自动轮播图代码,javascript实现自动左滑的轮播图(代码示例)

本篇文章给大家带来的内容是关于javascript实现自动左滑的轮播图(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近做项目总是只会调用别人做好的各种插件效果,想起很久没来自己写点小插件,久了会忘记的,就赶紧来补一下,前端程序员必备,实现一个js轮播图。

html代码:

  • timgZQQ905MD.jpg
  • 1486293868523.jpg
  • timg1.jpg
  • timg2.jpg
  • timgZQQ905MD.jpg

<

>

此次的小demo样例用了4张图片,由于要实现无缝衔接,即最后一张顺畅地跳转到第一张,故在写html的时候,再重复了最后一张图片,然后通过直接定位,在轮播到最后一张图片的时候,将整个ul定位到第一张,由于第一张和最后一张是一样的,故效果看起来则顺畅自然的轮播。

css代码:*{

margin: 0;

padding: 0;

}

.slide{

position: relative;

width: 1000px;

height: 500px;

margin: 40px auto;

overflow: hidden;

}

.img ul{

position: absolute;

left: -1000px;

width: 5000px;

}

.img li{

list-style-type: none;

float: left;

}

img{

width: 1000px;

height: 500px;

}

#num li{

list-style-type: none;

background-color: white;

border: 1px solid red;

border-radius: 100px;

float: left;

width: 10px;

height: 10px;

margin: 10px;

cursor: pointer;

}

#num {

position: absolute;

top: 450px;

left: 800px;

}

.btn{

font-size: 30px;

color: gray;

}

#left{

position: absolute;

top: 230px;

left: 40px;

cursor: pointer;

}

#right{

position: absolute;

top: 230px;

right: 40px;

cursor: pointer;

}

css中需要注意的是定位的时候,整个外部的p是相对定位,而里面的内容ul则相对于外部p进行绝对定位,通过left,top等来设置位置

js代码:$(document).ready(function () {

initRadius();

});

var number = 1; //设置为全局变量

//轮播图图片主体

function startSlide() {

dealRadius(number);

if(number == 4) {

number = 0;

$('#slide_img').css({left: '0px'}); //处理无缝衔接图

dealRadius(0); // 处理无缝衔接小圆点的跳转

}

number++;

var imageLeft = -1000 * number;

$('#slide_img').animate({left: imageLeft});

}

var timer = setInterval(startSlide,3000);

//小圆点的轮播实现

function dealRadius(num) {

var lis = $('#num li');

lis.eq(num).css('background-color', 'red');

for(var i = 0; i < num; i++) {

lis.eq(i).css('background-color','white');

}

for(var i = num + 1; i < 4; i++) {

lis.eq(i).css('background-color','white');

}

}

//初始化小圆点

function initRadius() {

var lis = $('#num li');

lis.eq(0).css('background-color', 'red');

}

//左右按钮的实现

$('#left').mousedown (function() {

clearInterval(timer);

if(number == 0) {

$('#slide_img').css({left: '-4000px'});

number = 4;

}

var imageLeft = -1000 * (number-1);

$('#slide_img').animate({left: imageLeft});

number--;

if(number == 0) {

dealRadius(3);

} else {

dealRadius(number-1);

}

});

$('#left').mouseup(function() {

timer = setInterval(startSlide,3000);

});

$('#right').mousedown (function() {

clearInterval(timer);

if(number == 4) {

number = 0;

$('#slide_img').css({left: '0px'}); //处理无缝衔接图

}

var imageLeft = -1000 * (number+1);

$('#slide_img').animate({left: imageLeft});

dealRadius(number);

number++;

});

$('#right').mouseup(function() {

timer = setInterval(startSlide,3000);

});

//小圆点的点击实现

$('#num').on('click','li',function(){

clearInterval(timer);

var _number = $(this).index() + 1;

number = _number

dealRadius(number-1);

var imageLeft = -1000 * number;

$('#slide_img').animate({left: imageLeft});

timer = setInterval(startSlide,3000);

});

js代码中,首先要知道关于定时器的使用,其中,关于dom的使用,好久没用啊,感觉很不熟悉。。自己得多来加强。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值