Magento2 / 前端開發 | 如何使用Slick js 自訂商品輪播器

之前我們分享過如何使用view.xml去調整商品輪播(Product Carousel)每次滾動的商品數量,但是這個作法需要修改程式碼,並且影響到的是全站使用page builder建立出來的商品輪播(Product Carousel)。如果您需要多組不同滾動數量的商品輪播(Product Carousel)又或者是無法修改程式碼,那麼我們今天要介紹的自訂商品輪播(Product Carousel)的方法就會非常適合您。今天介紹的這個方法、不僅可以直接使用後台完成,也可以針對不同的商品輪播(Product Carousel)給予不同的設定。
從這篇文章你會知道:
- 如何使用Slick js 在Magento2後台自訂商品輪播器
延伸閱讀:
slick js簡介
在開始設定之前、我們先簡單介紹一下slick js。slick js 是一套簡單好用的 jQuery外掛,一般常用的基本功能都已經完備,不僅支援響應式變化,也支援手指滑動的動作,可以使用手指滑動來換頁。最重要的是Magento2 Page Builder已經把slick js包含進去了,我們可以直接使用、不需要再額外上傳任何檔案,這樣子才能符合我們前面所講的,"不修改程式碼,直接在後台完成"的大前題。關於slick js的使用,您可以參考我們的影片如何使用slick js建立簡單的slider,也可以參考官網:https://kenwheeler.github.io/slick/。
這篇文章我們會使用到的是官網所提供的Responsive Display這個範例:
$('.responsive').slick({
dots: true,
infinite: false,
speed: 300,
slidesToShow: 4,
slidesToScroll: 4,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
infinite: true,
dots: true
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1
}
}
// You can unslick at a given breakpoint now by adding:
// settings: "unslick"
// instead of a settings object
]
});
待會兒我們會使用這個範例,做一些小修改來完成我們的商品輪播。
Step 1: 建立Product Grid
我們可以使用 Page Builder > Add Content > Products 先把我們需要的商品拉出來。建立的時候請選擇 Product Grid模式。

並且記得 CSS Classes 裡、輸入一組自訂的樣式名稱。文章中的範例我們要填入"my-product-grid"

Step 2: 設定slick js
使用 Page Builder > Elements > HTML Code 設定slick js
<script type="text/javascript">
require(['jquery', 'slick'], function($) {
$(function() {
var _slider = $('.my-product-grid').find('.product-items.widget-product-grid');
_slider.slick({
dots: true,
infinite: false,
speed: 300,
slidesToShow: 4,
slidesToScroll: 4,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
infinite: true,
dots: true
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1
}
}
]
});
});
});
</script>
加上上面的設定後、商品輪播的雛形已經具備了。但是當滑鼠滑入的時候、我們會發現奇怪的地方

這是因為我們使用了商品網格(Product Grid)來設定商品、因此還是會套用商品網格(Product Grid)的樣式。而原生的商品網格(Product Grid)在滑鼠滑過時會出現邊框、陰影、加入購物車、加入願望清單、加入商品比較等,但是在商品輪播設定好之後、滑入之後會出現的效果被切斷了,因此我們必須調整CSS樣式。
Step 3: 調整CSS樣式
調整CSS樣式有2種作法,第一種是保留滑入的效果、所以我們要增加商品周圍的空間、來讓滑入效果可以完整顯示。使用 Page Builder > Elements > HTML Code 來設定CSS樣式
<style type="text/css">
@media all and (min-width: 640px) {
.my-product-grid .block.widget .products-grid .product-item {
padding: 10px 10px 50px;
}
}
</style>

第二種調整方式是取消滑入的效果
<style type="text/css">
.my-product-grid .block.widget .products-grid .product-item-info {
position: static;
margin: 0;
border: none;
box-shadow: none;
padding: 0;
}
.my-product-grid .block.widget .products-grid .product-item-inner {
position: static;
margin: 0 !important;
border: none;
box-shadow: none !important;
display: block !important;
clip: auto;
height: auto;
overflow: visible;
width: auto;
padding: 0;
}
</style>

你可以視您的需求、選擇您喜歡的調整方式。以上就是我們分享的透過Magento2後台使用slick js自訂商品輪播的方法。
〖參考資料來源〗:
我要留言