隨著網路的快速發展,電子商務網站成為了商家進行線上銷售的重要管道之一。而在電子商務網站中,電商網站的設計和建構相當重要,一個好的網站可以吸引更多的用戶,提高用戶的購買轉換率和用戶留存率。本文將會介紹如何使用JavaScript在凡客誠品電商網站的網頁中增加一些特效。
凡客誠品是一家極具特色的時尚電商平台,為年輕消費族群提供時尚潮流的服裝、鞋帽、配件等商品。在這個競爭激烈的時代,電商網站除了商品本身的品質外,網站的設計和互動體驗同樣關鍵。因此,我們透過JavaScript技能的運用,為凡客誠品官網添加一些特效,以提升使用者造訪網站時的視覺體驗和互動體驗。
(一)導覽滑動效果
導覽列是網站中最重要的組成部分之一,導覽列好不好看直接影響網站的整體風格。我們要透過JavaScript實現導覽列滑動效果,來增加網站的動態與時尚感。實現此效果的實作步驟如下:
1.取得導覽列元素
var navElem = document.getElementsByClassName('nav')[0]; var navItems = navElem.getElementsByTagName('li'); var navLine = document.createElement('div'); navLine.className = 'nav-line'; navElem.appendChild(navLine);
navElem.addEventListener('mouseover', function(e) { if (e.target.tagName.toLowerCase() === 'li') { let rect = e.target.getBoundingClientRect(); let left = rect.left - navElem.getBoundingClientRect().left - (navLine.offsetWidth - e.target.offsetWidth) / 2; navLine.style.left = left + 'px'; } });
透過取得導覽列的各個li元素的座標,透過JavaScript的動態改變navLine的left屬性值來達到導覽列滑動的效果。
(二)商品清單頂部吸附效果
網站的商品展示頁面可以透過頂部吸附效果來提升使用者瀏覽商品的舒適感和體驗感。實現此效果的步驟如下:
1.取得商品清單元素
2.取得距離瀏覽器視窗頂部距離
var goodsList = document.getElementById('goods-list'); var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; var top = goodsList.getBoundingClientRect().top + scrollTop;
3.為捲軸新增捲動事件
window.addEventListener('scroll', function(e) { var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; if (scrollTop > top) { goodsList.style.position = 'fixed'; goodsList.style.top = 0; goodsList.style.zIndex = 999; } else { goodsList.style.position = ''; goodsList.style.top = ''; goodsList.style.zIndex = 1; } });
透過判斷捲軸的位置,如果捲軸的位置大於商品清單的頂部距離,則將商品清單的position設為fixed,達到商品清單頂部吸附效果。
(三)無限滾動懶載入效果
在商品清單瀏覽中,有時使用者需要不斷地向下捲動以尋找心儀的商品。在這種情況下,以往的做法都是自動刷新網頁,或是點擊下一頁的按鈕來切換,讓使用者體驗非常差。我們可以透過無限滾動懶加載效果來優化這一體驗。
實現此效果的步驟如下:
1.在商品清單底部新增佔位元素
var placeholder = document.createElement('div'); placeholder.className = 'placeholder'; goodsList.appendChild(placeholder);
2.透過Ajax載入更多的資料
function loadMore() { // 加载数据 var xhr = new XMLHttpRequest(); xhr.open('GET', 'more-goods-data.json'); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var jsonData = JSON.parse(xhr.responseText); if (jsonData.status === true) { var moreGoodsData = jsonData.moreGoodsData; var goodsHtml = ''; for (var i = 0; i < moreGoodsData.length; i++) { goodsHtml += '<li class="goods-item"><a href=""><img src="' + moreGoodsData[i].imgSrc + '"><h3 class="name">' + moreGoodsData[i].name + '</h3><p class="price">' + moreGoodsData[i].price + '</p></a></li>'; } // 将新加载的数据插入到DOM中 var placeholder = document.getElementsByClassName('placeholder')[0]; placeholder.insertAdjacentHTML('beforebegin', goodsHtml); } } } xhr.send(null); }
window.addEventListener('scroll', function(e) { var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; if ((scrollTop + document.documentElement.clientHeight) >= placeholder.offsetTop) { loadMore(); } });
當滾動條滾動到商品列表底部時,就會調用loadMore函數,即透過Ajax請求更多的數據,將獲取的數據追加到商品列表的底部。
透過以上的三個功能點,我們可以為電子商務網站的設計和互動體驗增加更多的亮點。華麗而簡潔的設計風格和流暢的互動體驗可以讓用戶更愉悅地瀏覽、購物,提高用戶購買轉換率和留存率,這對於電商網站而言是非常重要的。
以上是javaScript凡客誠品網頁設置的詳細內容。更多資訊請關注PHP中文網其他相關文章!