简单原理跟你说说吧。就是通过浮动。相对与绝对定位做的。当点击时++i 或--i来animate移动产生效果;
站在用户的角度思考问题,与客户深入沟通,找到定兴网站设计与定兴网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名与空间、网络空间、企业邮箱。业务覆盖定兴地区。
那个啥。不要用index绑定。就跟排队一样不断从队首往队尾移动就可以了。右移相反的过程。如果绑定index计算量过大。
$(document).ready(function() {
var timer = null;
var pic = $(".pic");
var oUl = pic.children("ul");
var aImg = pic.find("img");
var imgWidth = parseFloat(pic.css("width")) || pic.prop("offsetWidth");
oUl.css("width", imgWidth * aImg.length + 'px');
var i = 0;
timer = setInterval(function() {
oUl.animate({
"left": "-" + imgWidth + 'px'
}, 500, function(){
oUl.children("li:first").insertAfter(oUl.children("li:last"));
oUl.css("left", 0);
});
}, 1000);
});
还有就是用原生js模仿jQuery写一个动画函数,最简单版的就是:
var timer = null;
function ani(ele,target) {
clearInterval(ele.timer);
ele.timer = setInterval(function() {
var step = (target - ele.offsetLeft)/10;
step = step0?Math.ceil(step):Math.floor(step);
ele.style.left = ele.offsetLeft + step + "px";
console.log(1);
if (Math.abs(target - ele.offsetLeft) = Math.abs(step)) {
ele.style.left = target + "px";
clearInterval(ele.timer);
}
},30);
}
利用动画实现图片位置的移动,也是放一个图片到前面。
第二个就是还是放一张图到前面,然后把带图片的li定位;用一个arr[{left:0},{left:"200px"},{left:"400px"},{left:"600px"}];这样的数组把值分别赋给li;要滚动的时候把arr的最后一项放到最前面,再依次赋值给li,加上过渡就是轮播了,当然直接跳的那一下把过渡关了才是无缝轮播。
网上这类插件非常多,无非就是自己下下来,修改下样式就好了,其他的如动画轮播js是没必要去修改的,小图可以吧css中的按钮改成图片而已,没必要自己写哦,费脑子,
title无缝轮播图/titlestyle*{margin: 0;padding:0; }ul{list-style: none;}.banner{width: 600px;height: 300px;border: 2px solid #ccc;margin: 100px auto;position: relative;overflow: hidden;}.img{position: absolute;top: 0;left: 0}.img li{float: left;}.num{position: absolute;bottom: 10px;width: 100%;text-align: center;font-size: 0;}.num li{width: 10px;height: 10px;background:rgba(0,0,0,0.5);display: block;border-radius: 100%;display: inline-block;margin: 0 5px;cursor: pointer;}.btn{display: none;}.btn span{display: block;width: 50px;height: 100px;background: rgba(0,0,0,0.6);color: #fff;font-size: 40px;line-height: 100px;text-align: center;cursor:pointer;}.btn .prev{position: absolute;left: 0;top: 50%;margin-top: -50px;}.btn .next{position: absolute;right: 0;top: 50%;margin-top: -50px;}.num .active{background-color: #fff;}/stylescript src=""/script/headbodydiv class="banner"ul class="img"lia href="#"img src="img/1.jpg" alt="第1张图片"/a/lilia href="#"img src="img/2.jpg" alt="第2张图片"/a/lilia href="#"img src="img/3.jpg" alt="第3张图片"/a/lilia href="#"img src="img/4.jpg" alt="第4张图片"/a/lilia href="#"img src="img/5.jpg" alt="第5张图片"/a/li/ulul class="num"/ul //div class="btn"span class="prev"/spanspan class="next"/span/div/divscript$(function(){var i=0;var timer=null;for (var j = 0; j $('.img li').length; j++) { //创建圆点$('.num').append('li/li')}$('.num li').first().addClass('active'); //给第一个圆点添加样式var firstimg=$('.img li').first().clone(); //复制第一张图片$('.img').append(firstimg).width($('.img li').length*($('.img img').width())); //将第一张图片放到最后一张图片后,设置ul的宽度为图片张数*图片宽度// 下一个按钮$('.next').click(function(){i++;if (i==$('.img li').length) {i=1; //这里不是i=0$('.img').css({left:0}); //保证无缝轮播,设置left值};$('.img').stop().animate({left:-i*600},300);if (i==$('.img li').length-1) { //设置小圆点指示$('.num li').eq(0).addClass('active').siblings().removeClass('active');}else{$('.num li').eq(i).addClass('active').siblings().removeClass('active');}})// 上一个按钮$('.prev').click(function(){i--;if (i==-1) {i=$('.img li').length-2;$('.img').css({left:-($('.img li').length-1)*600});}$('.img').stop().animate({left:-i*600},300);$('.num li').eq(i).addClass('active').siblings().removeClass('active');})//设置按钮的显示和隐藏$('.banner').hover(function(){$('.btn').show();},function(){$('.btn').hide();})//鼠标划入圆点$('.num li').mouseover(function(){var _index=$(this).index();$('.img').stop().animate({left:-_index*600},150);$('.num li').eq(_index).addClass('active').siblings().removeClass('active');})//定时器自动播放timer=setInterval(function(){i++;if (i==$('.img li').length) {i=1;$('.img').css({left:0});};$('.img').stop().animate({left:-i*600},300);if (i==$('.img li').length-1) {$('.num li').eq(0).addClass('active').siblings().removeClass('active');}else{$('.num li').eq(i).addClass('active').siblings().removeClass('active');}},1000)//鼠标移入,暂停自动播放,移出,开始自动播放$('.banner').hover(function(){clearInterval(timer);},function(){timer=setInterval(function(){i++;if (i==$('.img li').length) {i=1;$('.img').css({left:0});};$('.img').stop().animate({left:-i*600},300);if (i==$('.img li').length-1) {$('.num li').eq(0).addClass('active').siblings().removeClass('active');}else{$('.num li').eq(i).addClass('active').siblings().removeClass('active');}},1000)})})/script