本文討論了構建無限圖像循環的最佳實踐,例如可讀性、代碼可重用性和良好的編碼實踐-使用JavaScript/jQuery 的網站滑桿。重點是如何排列圖片以創建無限循環滑桿的錯覺。
建立無限影像滑桿的簡單方法如下:假設您有「n」張影像要循環滑動,第一個影像位於第n 個影像之後,反之亦然。建立第一個和最後一個影像的克隆,然後執行以下操作:
無論圖片數量多少,最多只需要插入兩個克隆項目。
假設所有圖片都是 100px 寬,並顯示在一個有溢出的容器中: hide、display: inline-block、white-space: nowrap,容納圖像的容器可以輕鬆地排成一行。
對於 n = 4,DOM 結構將如下所示:
offset(px) 0 100 200 300 400 500 images | 4c | 1 | 2 | 3 | 4 | 1c /* ^^ ^^ [ Clone of the last image ] [ Clone of the 1st image ] */
最初,容器的位置為 left: -100px,允許顯示第一張圖像。若要在圖片之間切換,請將 JavaScript 動畫套用至您原先選擇的 CSS 屬性。
隨附的小提琴示範了這種效果。以下是使用的基本 JavaScript/jQuery 程式碼:
$(function() { var gallery = $('#gallery ul'), items = gallery.find('li'), len = items.length, current = 1, /* the item we're currently looking */ first = items.filter(':first'), last = items.filter(':last'), triggers = $('button'); /* 1. Cloning first and last item */ first.before(last.clone(true)); last.after(first.clone(true)); /* 2. Set button handlers */ triggers.on('click', function() { var cycle, delta; if (gallery.is(':not(:animated)')) { cycle = false; delta = (this.id === "prev")? -1 : 1; /* in the example buttons have id "prev" or "next" */ gallery.animate({ left: "+=" + (-100 * delta) }, function() { current += delta; /** * we're cycling the slider when the the value of "current" * variable (after increment/decrement) is 0 or when it exceeds * the initial gallery length */ cycle = (current === 0 || current > len); if (cycle) { /* we switched from image 1 to 4-cloned or from image 4 to 1-cloned */ current = (current === 0)? len : 1; gallery.css({left: -100 * current }); } }); } }); });
這個解決方案相對簡單高效,與非-循環滑桿。
雖然可能存在替代方法,但此方法為建立無限循環滑桿提供了實用且有效的解決方案。
以上是如何使用 JavaScript/jQuery 建立無限圖像循環滑桿?的詳細內容。更多資訊請關注PHP中文網其他相關文章!