帶層次感的圖片輪播,層次感圖片
原文摘自我的前端部落格,歡迎大家來訪問http://hacke2.github.io/
起因
豪哥的JS練習又一波來襲~今天又寫了個百度愛玩的東西,暫且叫他帶層次感的圖片輪播吧
圖片可以很有層次感的切換思路
主要思路有二
圖片大小、位置的計算
我的思路是這樣的:
因為首尾切換,我想到的就是自己封裝一個迴圈隊列
//封裝一個迴圈隊列function CircularQueue(arr) {this.arr = arr || [];}//移除前一個,追加到最後CircularQueue.prototype.shift = function() {var temp = this.arr.shift();this.arr.push(temp);}//移除最後一個,追加到頭部CircularQueue.prototype.unshift = function() {var temp = this.arr.pop();this.arr.unshift(temp);}//添加一個元素CircularQueue.prototype.add = function(obj) {this.arr.push(obj);}
現在一個數組裡緩衝下初始位置的大小,
//初始化ARR數組var queue = new CircularQueue();for (var i = 0; i < li.length; i++) {queue.add({top: parseInt(getStyle(li[i], 'top')),left: parseInt(getStyle(li[i], 'left')),width: parseInt(getStyle(li[i], 'width')),height: parseInt(getStyle(li[i], 'height')),zIndex: getStyle(li[i], 'z-index')});}
然後在每一個選擇項加上mouseover事件,來切換以片。
//綁定事件for (var j = 0; j < links.length; j++) {links[j].onmouseover = (function(j, len) {return function() {//滑鼠一上去小點切換var k = len - 1;for (; k >= 0; k--) {links[k].className = 'dot';}links[j].className += ' dot-active';//替換大圖片var arr = getMiddleArr(j);updateStyle(arr);}})(j, links.length);}
然後通過傳入一個數值,得到以改數組為中心的新數組。 因為不能打亂以前的數組,所以我用了深複製
//深複製Object.prototype.clones = function() {var o = {};for (var i in this) {o[i] = this[i];}return o;};Array.prototype.clones = function() {var arr = [];for (var i = 0; i < this.length; i++)if (typeof this[i] !== 'object') {arr.push(this[i]);} else {arr.push(this[i].clones());}return arr;};
緩衝運動
還是用的智聯社的運動庫,最後將頁面元素的樣式更新
//調用動作函數繪製function updateStyle(arr) {for (var i = 0; i < li.length; i++) {li[i].style.zIndex = arr[i].zIndex;startMove(li[i], arr[i]);}}
代碼
全部代碼就不貼在部落格上了,很簡單,沒什麼可看的,大家可以去我的github上檢出
點擊進入github: AngularJs+BootStarp+fontAwesome打造個人展示頁面
查看完整DEMO
end from http://hacke2.github.io
右下帶數字可手動控制的輪播圖片代碼,指出代碼什地方可以替換圖片,高度、寬度等等,萬分感謝
五張圖片輪播效果的代碼。
複製以下代碼。把圖片寬度與高度改成自己想要的大小。插入連結地址和圖片地址就可以。
DIV class="slider-promo J_Slider J_TWidget" style="FLOAT: left; OVERFLOW: hidden; WIDTH: 圖片寬度px; HEIGHT: 圖片高度px" data-widget-type="Slide" data-widget-config="{'effect':'scrolly','contentCls': 'lst-main', 'navCls': 'lst-trigger', 'activeTriggerCls': 'current'}">
<ul class=lst-main>
<li style="DISPLAY: block"><A href="http://連結地址" target=_blank><img alt="" src="http://圖片地址"></A>
<li style="DISPLAY: block"><A href="http://連結地址" target=_blank><img alt="" src="http://圖片地址"></A>
<li style="DISPLAY: block"><A href="http://連結地址=" target=_blank><img alt="" src="http://圖片地址"></A>
<li style="DISPLAY: block"><A href="http://連結地址" target=_blank><img alt="" src="http://圖片地址"></A>
<li style="DISPLAY: block"><A href="http://連結地址" target=_blank><img alt="" src="http://圖片地址"></A></li></ul><ul class=lst-trigger>
<li style="BACKGROUND: #c00">1
<li class=current&......餘下全文>>
html代碼做圖片輪播效果問題
試試這個圖片切換
有12345數字一起切換
滑鼠點一下數字會變換到另一張圖片,不點就會自動換
裡面有教程和源碼
參考資料:www.blueidea.com/...=10895