---
# System prepended metadata

title: Slider/圖片輪播
tags: [HyUI]

---

# Slider/圖片輪播

###### tags: `HyUI`


檔案名稱：vendor/slick/slick-theme.css
檔案名稱：vendor/slick/slick.css
檔案名稱：sass/modual/_slick.scss (合併上面兩個)

HyUI使用 <font color="#009ee7">slick</font> 的輪播模組，目前hyUI  <font color="#EE428B">vendor</font> 內含 <font color="#EE428B">slick</font> 已經有加入客製化設定，如需要最新版，請到 <font color="#009ee7">[slick](https://kenwheeler.github.io/slick/)</font> 官網下載。

## 請在網頁中匯入slick 外掛

slick屬於外掛，故放在 <font color="#EE428B">vendor</font> 資料夾裡，包括所有的圖檔、js、css

## 匯入外掛CSS

```htmlmixed=
<link rel="stylesheet" type="text/css" href="vendor/slick/slick.css" />
<link rel="stylesheet" type="text/css" href="vendor/slick/slick-theme.css" />
```

## 匯入JS

```htmlmixed=
<script src="vendor/slick/slick.min.js "></script>
```
## Slick的基本設定

使用設定以slick官方文件為準。
```javascript=
$(document).ready(function(){
  $('.your-class').slick({
    arrows: true,                       //左右箭頭
    autoplay: false,                    //自動播放
    autoplaySpeed: 3000,                //自動播放秒數
    dots: false,                        //顯示圓點
    dotsClass:  'slick-dots',           //原點css
    draggable: true,                    //滑鼠可以拖曳
    infinite: true,                     //無限輪播
    pauseOnHover: true,                 //滑鼠移過後暫停自動撥放
    pauseOnDotsHover: false,            //滑鼠移過圓點後暫停自動撥放
    rtl: false,                         //改變輪播方向
    slidesToShow: 1,                    //一次顯示幾張
    slidesToScroll: 1,                  //一次輪播幾張
    vertical: false ,                   //改成垂直方向
    fade: true,                         // 淡入
    centerMode: true,                   //圖片中心模式
    adaptiveHeight: true,               //圖片上下適應高度
  });
});
```

## <font color="#009ee7">01.大圖輪播範例</font> 

本版本輪播圖檔可使用 <font color="#EE428B">obect-fit</font> 設定，故上稿內容不限尺寸，皆可正常呈現。

<iframe height="500" style="width: 100%;" scrolling="no" title="Slider 大圖輪播" src="https://codepen.io/u00hyui/embed/poeMgrd?defaultTab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
  See the Pen <a href="https://codepen.io/u00hyui/pen/poeMgrd">
  Slider 大圖輪播</a> by u00hyui (<a href="https://codepen.io/u00hyui">@u00hyui</a>)
  on <a href="https://codepen.io">CodePen</a>.
</iframe>

## HTML範本

圖檔顯示比例可參考image.htm
```htmlmixed=
<!-- 圖片輪播 start -->
<div class="mpSlider">
    <div class="img-container">
        <a href="#" title="">
            <picture>
                <source media="(min-width: 1200px)" data-srcset="images/demo/01.jpg">
                <source media="(min-width: 992px)" data-srcset="images/demo/01.jpg">
                <source media="(min-width: 576px)" data-srcset="images/demo/01.jpg">
                <source media="(max-width: 575px)" data-srcset="images/demo/01.jpg">
                <img data-src="images/demo/01.jpg" class="cover lazy" alt="圖說1">
                <noscript><img src="images/demo/01.jpg" alt="圖說1"></noscript>
            </picture>
            <span class="caption">圖說1</span>
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <picture>
                <source media="(min-width: 1200px)" data-srcset="images/demo/02.jpg">
                <source media="(min-width: 992px)" data-srcset="images/demo/02.jpg">
                <source media="(min-width: 576px)" data-srcset="images/demo/02.jpg">
                <source media="(max-width: 575px)" data-srcset="images/demo/02.jpg">
                <img data-src="images/demo/02.jpg" class="cover lazy" alt="圖說2">
                <noscript><img src="images/demo/02.jpg" alt="圖說2"></noscript>
            </picture>
            <span class="caption">圖說2</span>
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <picture>
                <source media="(min-width: 1200px)" data-srcset="images/demo/03.jpg">
                <source media="(min-width: 992px)" data-srcset="images/demo/03.jpg">
                <source media="(min-width: 576px)" data-srcset="images/demo/03.jpg">
                <source media="(max-width: 575px)" data-srcset="images/demo/03.jpg">
                <img data-src="images/demo/03.jpg" class="cover lazy" alt="圖說3">
                <noscript><img src="images/demo/03.jpg" alt="圖說3"></noscript>
            </picture>
            <span class="caption">圖說3</span>
        </a>
    </div>
</div>
<!-- 圖片輪播 end -->
```



## <font color="#009ee7">02.廣告輪播範例</font> 

<iframe height="300" style="width: 100%;" scrolling="no" title="廣告輪播範例" src="https://codepen.io/u00hyui/embed/oNZKobG?defaultTab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
  See the Pen <a href="https://codepen.io/u00hyui/pen/oNZKobG">
  廣告輪播範例</a> by u00hyui (<a href="https://codepen.io/u00hyui">@u00hyui</a>)
  on <a href="https://codepen.io">CodePen</a>.
</iframe>

## HTML範本

```htmlmixed=
<!-- 廣告輪播   start -->
<div class="adSlider">
    <div class="img-container">
        <a href="#" title="">
            <img data-lazy="images/demo/ad_01.jpg" class="contain" alt="圖片說明1">
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <img data-lazy="images/demo/ad_02.jpg" class="contain" alt="圖片說明2">
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <img data-lazy="images/demo/ad_03.jpg" class="contain" alt="圖片說明3">
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <img data-lazy="images/demo/ad_04.jpg" class="contain" alt="圖片說明4">
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <img data-lazy="images/demo/ad_05.jpg" class="contain" alt="圖片說明5">
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <img data-lazy="images/demo/ad_06.jpg" class="contain" alt="圖片說明6">
        </a>
    </div>
    <div class="img-container">
        <a href="#" title="">
            <img data-lazy="images/demo/ad_07.jpg" class="cover" alt="圖片說明7">
        </a>
    </div>
</div>
<!-- 廣告輪播   end -->
```
## <font color="#009ee7">03.照片輪播範例</font> 

<iframe height="750" style="width: 100%;" scrolling="no" title="照片輪播" src="https://codepen.io/u00hyui/embed/vYxoWRz?defaultTab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
  See the Pen <a href="https://codepen.io/u00hyui/pen/vYxoWRz">
  照片輪播</a> by u00hyui (<a href="https://codepen.io/u00hyui">@u00hyui</a>)
  on <a href="https://codepen.io">CodePen</a>.
</iframe>

## HTML範本

```htmlmixed=
<div class="Syncing_slider">
    <!--大圖slider-for-->
    <div class="Slider-for">
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/examples/kingfisher.jpg?w=500&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第一張圖說</p>
        </div>
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/examples/puffins.jpg?w=800&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第二張圖說</p>
        </div>
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/examples/womanlandscape.jpg?w=800&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第三張圖說</p>
        </div>
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/unsplash/paperlamp.jpg?w=800&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第四張圖說</p>
        </div>
    </div>
    <!-- slider-for end-->
    <div class="controls"></div>
    <!--小圖slider-nav-->
    <div class="Slider-nav">
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/examples/kingfisher.jpg?w=800&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第一張圖說</p>
        </div>
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/examples/puffins.jpg?w=800&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第二張圖說</p>
        </div>
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/examples/womanlandscape.jpg?w=800&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第三張圖說</p>
        </div>
        <div>
            <div class="img-container">
                <img src="https://assets.imgix.net/unsplash/paperlamp.jpg?w=800&h=480&fit=crop&auto=format%2Cenhance&usm=20">
            </div>
            <p>第四張圖說</p>
        </div>
    </div>
    <!-- slider-nav end-->
</div>
```

## JQuery設定:round_pushpin:

### 關於slick按鈕的title語系

因應無障礙需求，在左右箭頭需要有替代文字，但往往因為網站有不同語系需求，因此按鈕需要呈現不同語言的替代文字，例如:

<<font color="#009ee7">html</font> lang="<font color="#EE428B">zh-Hant</font>">中按鈕會呈現<<font color="#009ee7">button</font> class="slick-prev" ... title="<font color="#EE428B">前一則</font>">Previous</button>或是
<<font color="#009ee7">html</font> lang="<font color="#EE428B">en</font>" >中按鈕會呈現或是<<font color="#009ee7">button</font> class="<font color="#EE428B">slick-prev</font>" ... title="<font color="#EE428B">previous</font>">Previous</button>，
此時無法用同一種語言因應各種語系，HyUI提供一組判斷語系之javascript設定，語系參照[W3C ISO Language Codes](https://www.w3schools.com/tags/ref_language_codes.asp)，可自行複製到各專案修改語系及對應之替代文字即可。注意：此程式並無預設放入 <font color="#EE428B">hyui.js</font>。

其中，程式是判斷語系字串中的前面字符作為判斷依據，目的是同一語系可能會有分支語系，但以開頭之語系英文字母做判斷。

## hyui.js 範例

```javascript=
//不同語系
//無障礙切換slick箭頭語系
if ($('html')[0].hasAttribute("labg")) {
    var weblang = $('html').attr('lang');
    if (weblang.substring(0, 2) == 'zh') {
        $('.slick-prev').attr('title', '上一筆');
        $('.slick-next').attr('title', '下一筆');
    } else if (weblang.substring(0, 2) !== 'zh') {
        $('.slick-prev').attr('title', 'previous');
        $('.slick-next').attr('title', 'next');
    }
}
```

## 輪播項目之索引標籤(點點)提示


需補充較詳細之提示文字，讓使用導讀軟體之使用者可以明確了解該元件之功能與用途，目前以 <font color="#EE428B">單張輪播</font> 修改。

<font color="#009ee7">在所需 slider 做 js 調整</font>

```javascript=
取文字
customPaging: function(slider, i) {
                var title = $(slider.$slides[i]).find('.title').html().trim();
                return $('<button type="button" aria-label="'+title+'"/>').text(title);
            }
      
取圖片的alt    
customPaging: function(slider, i) {
             var title = $(slider.$slides[i]).find('img').attr('alt').trim();
            return $('<button type="button" aria-label="'+title+'"/>').text(title);
            }
```
<font color="#009ee7">slick.js 修改拿掉</font>

![](https://i.imgur.com/ABKdv6Z.jpg)

<font color="#009ee7">slick.min.js 修改拿掉</font>

![](https://i.imgur.com/gZlbY5u.jpg)

















<style>
.ui-infobar{
max-width:95%;
}
.markdown-body{
max-width:95%;
}
</style>