1.无缝滚动
这个关键点就在于,当可视区的图片轮播到最左边时,设置它左边的滑动距离if(view.scrollLeft<=0){ view.scrollLeft=1000; }
在需要轮播的所有图片后,再加一个与之相同的容器,内容也相同,可视区图片数为3,则新加的容器里图片数需>=3
精髓所在:
time=setInterval(function () {
view.scrollLeft-=speed;
if(view.scrollLeft<=0){
view.scrollLeft=1000;
}
2.三维轮播
就是zindex替换,样式(left,top)替换
精髓所在:
lists[i].style.left = lists[i + 1].style.left;
lists[i].style.top = lists[i + 1].style.top;
lists[i].style.zIndex = lists[i + 1].style.zIndex;
3.淡入淡出
就是透明度opacity更换,还有zindex替换
中午写到快结束了,结果加上圈圈又出问题了…想哭
淡入淡出轮播图:①写界面很简单。首先给一个大的div,需要轮播的图片再用div包着就行。②图片已经排列好了,最后一张图最后加载,所以在最上面,先要调图层,把图片的图层按1,2,3,4,…调好,如何实现呢?function changeZindex() { for(var i=0;i<imglist.length;i++){ imglist[i].style.zIndex=imglist.length-i-1;//层按5,4,3,2,1,0 } }
③层按for循环遍历完,然后zindex已经按顺序加上,写每一层的动画④计时器动态修改zindex的值,具体???zindex为6,让其透明,让最高层透明,zindex为5,即最高层-1,倒数第二张透明度为1。。。透明度切换,index跟着变化,确保图片跟随变化。⑤写圈圈动画,就是循环,进入当前的这个加上颜色的class,改类名。一般最后面写上window.onload⑥给圈圈加载事件,这个有点复杂…………鼠标进入当前点变色,拿到索引,添加addcolor方法就行。那得先给index赋值index=this.index;
点对应图片????怎么搞???难点!!!!!!!!!当前索引,减去之前索引,差值就是转的次数。count为负?该怎么转???这个有透明度,所以不用考虑,不管它正着反着肉眼看到的是没区别的,但是动画延迟时间就得改了。
4.横向滚动
margin-left是关键
首先:①写界面,div可视区,ul>li 里面放img,ul的宽度为图片宽度总和。布局ok.②初始动画,ul加载动画,ul进行移动ullist.style.marginLeft="-500px"
并且transition: margin-left .5s linear;
③动态修改margin-left:var count=0; function animate(){ setInterval(function () { count++ ullist.style.marginLeft=(-500*count)+"px"
④添加点变色的类
function addColor() {
for(var i=0;i<dian.length;i++){
if(i==index){
dian[i].className="bgcolor";
}else{
dian[i].className="";
}
}
}
⑤鼠标进入当前点变色,切对应的图(…点怎么对应图片?就是执行之前计时器里写的图片切换动画方法)
for(var i=0;i<dian.length;i++){
dian[i].index=i;
dian[i].onmouseenter=function () {
index=this.index;
count=this.index;
normalGo();
addColor();
}
}