韓雪輪播圖
原理
<div id='box'>1,2,3,4</div>
<input type="button" value="切換" id="input"/>
var box = document.getElementById('box')
var input = document.getElementById('input')
input.onclick = function(){
var arr = box.innerHTML.split(','); //轉換為數組[1,2,3,4]
arr.push(arr[0]) //第一項加到最後 [1,2,3,4,1]
arr.shift() //刪除首項 [2,3,4,1]
box.innerHTML = arr;
}
正式例子
簡陋佈局
<div id="div1">
<a href="javascript:;" class="prev">←</a>
<a href="javascript:;" class="next">→</a>
<ul>
<li class="pos_1"><img src="../img/h1.jpg" alt="" width="280"/></li>
<li class="pos_2"><img src="../img/h2.jpg" alt="" width="380"/></li>
<li class="pos_3"><img src="../img/h3.jpg" alt="" width="480"/></li>
<li class="pos_4"><img src="../img/h4.jpg" alt="" width="580"/></li>
<li class="pos_5"><img src="../img/h5.jpg" alt="" width="680"/></li>
<li class="pos_6"><img src="../img/h6.jpg" alt="" width="580"/></li>
<li class="pos_7"><img src="../img/h7.jpg" alt="" width="480"/></li>
<li class="pos_8"><img src="../img/h8.jpg" alt="" width="380"/></li>
<li class="pos_9"><img src="../img/h9.jpg" alt="" width="280"/></li>
<li class="pos_10"><img src="../img/h10.jpg" alt="" width="180"/></li>
</ul>
</div>
window.onload = function () {
var div = document.getElementById('div1')
var li = div.getElementsByTagName('li')
var a = div.getElementsByTagName('a')
var arr = []; //放置需要改變的每張圖片的左寬透明度等;
for (var i = 0; i < li.length; i++) {
var img = li[i].getElementsByTagName('img')[0]
arr.push([parseInt(getStyle(li[i], 'left')), parseInt(getStyle(li[i], 'top')), getStyle(li[i], 'opacity') * 100, getStyle(li[i], 'zIndex'), img.width])
}
a[0].onclick = function () {
arr.push(arr[0]);//先把第一項放到後面 1,2,3,4,1
arr.shift() //再刪除第一項 2,3,4,1
for (var i = 0; i < li.length; i++) {
var img = li[i].getElementsByTagName('img')[0] //圖片需要重新獲取,不寫則錯亂
li[i].style.zIndex = arr[i][3] //更改透明度
startMove(li[i], {left: arr[i][0], top: arr[i][1], opacity: arr[i][2]}) //加入運動函數
startMove(img, {width: arr[i][4]}) //更改圖片寬度
}
}
a[1].onclick = function () {
arr.unshift(arr[arr.length - 1]);//最後一項放到第一位 4,1,2,3,4
arr.pop() //再刪除最後一項 4,1,2,3
for (var i = 0; i < li.length; i++) {
var img = li[i].getElementsByTagName('img')[0] //圖片需要重新獲取,不寫則錯亂
li[i].style.zIndex = arr[i][3] //更改透明度
startMove(li[i], {left: arr[i][0], top: arr[i][1], opacity: arr[i][2]}) //加入運動函數
startMove(img, {width: arr[i][4]}) //更改圖片寬度
}
}
}
*{margin:0;padding:0}li{list-style:none;position:absolute;left:0;top:0;overflow:hidden}#div1{width:680px;margin:0 auto;position:relative;top:30px}.pos_1{opacity:.2;z-index:0;left:-200px}.pos_2{opacity:.4;z-index:0;left:-150px}.pos_3{opacity:.6;z-index:0;left:-100px}.pos_4{opacity:.8;z-index:0;left:-50px}.pos_5{opacity:1;z-index:5;left:0}.pos_6{opacity:.8;z-index:4;left:150px}.pos_7{opacity:.6;z-index:3;left:300px}.pos_8{opacity:.4;z-index:2;left:450px}.pos_9{opacity:.2;z-index:1;left:600px}.pos_10{opacity:0;z-index:0;left:750px}.next,.prev{display:inline-block;width:60px;height:40px;background-color:#E4E4E4;position:absolute;color:#373737;z-index:6;line-height:40px;font-size:40px;text-align:center;text-decoration:none;opacity:.8}.prev{left:0;top:190px}.next{right:0;top:190px}.next a:hover,.prev a:hover{opacity:1;color:#000}