目次

    jqueryでslickの使用:

    スライダープラグインはたくさんありますが、その中でもよく使われる「slick」の使い方と実装方法を紹介します。

    slick の使用方法は 2 つあります。ファイルをダウンロードしてロードする方法と、CDN を使用してロードする方法です。 slick には jQuery 自体も必要なので、jQuery もロードすることを忘れないでください。

    HTML for Slick:

    滑らかなスライダーの基本的な html を作成する:-

    <ul class="slider-2" id="js-slider-2">
      <li><img src="./assets/img/img01.jpg" alt=""></li>
      <li><img src="./assets/img/img02.jpg" alt=""></li>
      <li><img src="./assets/img/img03.jpg" alt=""></li>
      <li><img src="./assets/img/img04.jpg" alt=""></li>
    </ul>
    <div class="dots-2"></div>

    CSS for Slick:

    .slider-2 .slick-slide {
      width: 600px;
      height: 400px;
      margin: 0 40px;
      position: relative;
      overflow: hidden;
    }
    .slider-2 .slick-slide img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .slider-2 .slick-arrow {
      width: 60px;
      height: 60px;
      border-radius: 50%;
      background-color: #fff;
      cursor: pointer;
      border: none;
      outline: none;
      font-size: 0;
      position: absolute;
      top: 180px;
      z-index: 1;
      filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
    }
    .slider-2 .slick-arrow::before {
      content: '';
      display: block;
      width: 12px;
      height: 12px;
      border: 1px solid #09000d;
      border-width: 3px 3px 0 0;
      position: absolute;
      top: 24px;
      transform: rotate(45deg);
    }
    .slider-2 .slick-next {
      right: 0;
    }
    .slider-2 .slick-prev {
      left: 0;
    }
    .slider-2 .slick-next::before {
      left: 20px;
    }
    .slider-2 .slick-prev::before {
      border-width: 0 0 3px 3px;
      right: 22px;
    }
    .dots-2 .slick-dots {
      text-align: center;
    }
    .dots-2 .slick-dots li {
      display: inline-block;
    }
    .dots-2 .slick-dots button {
      display: block;
      width: 10px;
      height: 10px;
      margin: 6px;
      font-size: 0;
      padding: 0;
      border: 0;
      outline: none;
      cursor: pointer;
      background: #bcbcbc;
      border-radius: 50%;
    }
    .dots-2 .slick-dots .slick-active button {
      background: #0a467d;
    }

    ここでは、「slick」と呼ばれるすべてのクラスが、slick 機能のために作成されています。

    JS for Slick:

    $(function () {
      $('#js-slider-2').slick({
        arrows: true, // 前・次のボタンを表示する
        dots: true, // ドットナビゲーションを表示する
        appendDots: $('.dots-2'), // ドットナビゲーションの生成位置を変更
        speed: 1000, // スライドさせるスピード(ミリ秒)
        slidesToShow: 1, // 表示させるスライド数
        centerMode: true, // slidesToShowが奇数のとき、現在のスライドを中央に表示する
        variableWidth: true, // スライド幅の自動計算を無効化
      });
    });

    この手順に従って、滑らかなスライダーを作成してみましょう。

    jqueryを使ってアコーディオンを作る方法:

    jQuery のslideToggle を使い、HTML 内のタイトル要素をクリックして、直後のエリアを開閉する。
    同時に、タイトル要素にクラス名を付与・除去することで、アイコンの形状をCSS で変化させる。

    画面が読み込まれた際に開いておきたいアコーディオンパネルをJavaScript で指定してopen クラスを付与する。


    HTML for Accordion:


    <body>
    <h2>9-2-1 任意の場所をクリックすると隠れていた内容が開く</h2>
      <ul class="accordion-area">
        <li>
          <section>
            <h3 class="title">お見積もりの目安を教えてください。</h3>
            <div class="box">
              <p>内容によって変化いたしますのでまずはお問い合わせフォームよりご相談ください。</p>
            </div>
          </section>
        </li>
        <li>
          <section>
            <h3 class="title">地方ですが発注は可能でしょうか</h3>
            <div class="box">
              <p>可能です。お気軽にご相談ください。</p>
            </div>
          </section>
        </li>
        <li>
          <section>
            <h3 class="title">セミナーやイベントの出演を依頼したいのですが</h3>
            <div class="box">
              <p>お問い合わせフォームより日時や内容などをご記入いただきご相談ください。</p>
            </div>
          </section>
          
        </li>
      </ul>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script src="/app.js"></script>
    </body>

    CSS for Accordion:

    /*==================================================
    アコーディオンのためのcss
    ===================================*/

    /*アコーディオン全体*/
    .accordion-area{
        list-style: none;
        width: 96%;
        max-width: 900px;
        margin:0 auto;
    }

    .accordion-area li{
        margin: 10px 0;
    }

    .accordion-area section {
      border: 1px solid #ccc;
    }

    /*アコーディオンタイトル*/
    .title {
        position: relative;/*+マークの位置基準とするためrelative指定*/
        cursor: pointer;
        font-size:1rem;
        font-weight: normal;
        padding: 3% 3% 3% 50px;
        transition: all .5s ease;
    }

    /*アイコンの+と×*/
    .title::before,
    .title::after{
        position: absolute;
        content:'';
        width: 15px;
        height: 2px;
        background-color: #333;
        
    }
    .title::before{
        top:48%;
        left: 15px;
        transform: rotate(0deg);
        
    }
    .title::after{    
        top:48%;
        left: 15px;
        transform: rotate(90deg);

    }
    /* closeというクラスがついたら形状変化 */
    .title.close::before{
      transform: rotate(45deg);
    }

    .title.close::after{
      transform: rotate(-45deg);
    }

    /*アコーディオンで現れるエリア*/
    .box {
        display: none;/*はじめは非表示*/
        background: #f3f3f3;
      margin:0 3% 3% 3%;
        padding: 3%;
    }

    /*========= レイアウトのためのCSS ===============*/


    h2{
        text-align: center;
        margin: 30px 0;
        font-size:1rem;
    }

    JS for Accordion:

    //アコーディオンをクリックした時の動作
    $('.title').on('click', function() {//タイトル要素をクリックしたら
      var findElm = $(this).next(".box");//直後のアコーディオンを行うエリアを取得し
      $(findElm).slideToggle();//アコーディオンの上下動作
        
      if($(this).hasClass('close')){//タイトル要素にクラス名closeがあれば
        $(this).removeClass('close');//クラス名を除去し
      }else{//それ以外は
        $(this).addClass('close');//クラス名closeを付与
      }
    });

    これはjQueryでアコーディオンを作る方法です。
    PREV
    2023.03.14
    【UI/UX設計の原理原則】ポステルの法則とは?
    NEXT
    2023.04.10
    主役は誰?レイアウトで注意すべきこと