Rumah  >  Artikel  >  hujung hadapan web  >  kotak senarai drop-down kad lipat jQuery CSS3 untuk mencapai effect_jquery

kotak senarai drop-down kad lipat jQuery CSS3 untuk mencapai effect_jquery

WBOY
WBOYasal
2016-05-16 15:34:061848semak imbas

Kesan khas kotak senarai lungsur jQuery menjadikan setiap item senarai kelihatan seperti kad membuka dan menutupnya Kesannya sangat bagus.

Tutorial ringkas
Struktur HTML
Item senarai kesan kotak senarai lungsur ini dibuat menggunakan senarai tidak tertib dan elemen yang digunakan untuk menukar keadaan terbuka dan tertutup ialah elemen hiperpautan.

<div class="container">
 <div class="card-drop">
  <a class='toggle' href="#">
   <i class='fa fa-suitcase'></i> 
   <span class='label-active'>Everyting</span>
  </a>
  <ul>
   <li class='active'>
    <a data-label="Everyting" href="#"><i class='fa fa-suitcase'></i> Everyting</a>
   </li>
   ......
  </ul>
 </div>
</div>

Gaya CSS
Elemen a.toggle digunakan untuk menukar keadaan terbuka dan tertutup senarai juntai bawah. Untuk mencipta kesan membalikkan kad apabila diklik, ia ditetapkan dengan atribut transform-style: preserve-3d; Pada masa yang sama, asal-usul transformasi transformasi: 50% 0% diubah suai.

.card-drop > a.toggle {
 position: relative;
 z-index: 100;
 -moz-backface-visibility: hidden;
 -webkit-backface-visibility: hidden;
 backface-visibility: hidden;
 -moz-transform-style: preserve-3d;
 -webkit-transform-style: preserve-3d;
 transform-style: preserve-3d;
 -moz-transform-origin: 50% 0%;
 -ms-transform-origin: 50% 0%;
 -webkit-transform-origin: 50% 0%;
 transform-origin: 50% 0%;
 -moz-transition: linear 0.1s;
 -o-transition: linear 0.1s;
 -webkit-transition: linear 0.1s;
 transition: linear 0.1s;
}       

Tetapi apabila ia aktif, ia akan berputar di sepanjang paksi X dan menggunakan :sebelum dan :selepas unsur pseudo untuk mencipta kesan segi tiga penjuru.

.card-drop > a.toggle:active {
 -moz-transform: rotateX(60deg);
 -webkit-transform: rotateX(60deg);
 transform: rotateX(60deg);
}
.card-drop > a.toggle:active:after {
 -moz-transform: rotateX(180deg);
 -webkit-transform: rotateX(180deg);
 transform: rotateX(180deg);
}
.card-drop > a.toggle:before, .card-drop > a.toggle:after {
 content: "";
 position: absolute;
}
.card-drop > a.toggle:before {
 right: 25px;
 top: 50%;
 margin-top: -2.5px;
 border-left: 6px solid transparent;
 border-right: 6px solid transparent;
 border-top: 6px solid rgba(0, 0, 0, 0.8);
}
.card-drop > a.toggle.active:before {
 transform: rotate(180deg);
}        

Apabila menukar item senarai, hanya gunakan jQuery untuk mengubah suai sifat atas, lebar dan kiri margin untuk menunjukkan dan menyembunyikannya. Dan gunakan kemudahan sebagai kesan peralihan animasi CSS.

.card-drop ul {
 position: absolute;
 height: 100%;
 top: 0;
 display: block;
 width: 100%;
}
.card-drop ul li {
 margin: 0 auto;
 -moz-transition: all, ease-out 0.3s;
 -o-transition: all, ease-out 0.3s;
 -webkit-transition: all, ease-out 0.3s;
 transition: all, ease-out 0.3s;
 position: absolute;
 top: 0;
 z-index: 0;
 width: 100%;
}
.card-drop ul li a {
 border-top: none;
}
.card-drop ul li a:hover {
 background-color: #4aa3df;
 color: #f3f9fd;
}
.card-drop ul li.active a {
 color: #fff;
 background-color: #258cd1;
 cursor: default;
}
.card-drop ul li.closed a:hover {
 cursor: default;
 background-color: #3498db;
}        

JavaScript

Dalam kod jQuery, fungsi setClosed() digunakan untuk menutup semua item senarai, dan ia ditutup secara lalai.

function setClosed() {
  li.each(function (index) {
    $(this).css('top', index * 4).css('width', width - index * 0.5 + '%').css('margin-left', index * 0.25 + '%');
  });
  li.addClass('closed');
  toggler.removeClass('active');
}
setClosed();        

Kemudian dengar acara turun tetikus bagi elemen .toggle, yang menukar keadaan terbuka dan tertutup senarai.

toggler.on('mousedown', function () {
  var $this = $(this);
  if ($this.is('.active')) {
    setClosed();
  } else {
    $this.addClass('active');
    li.removeClass('closed');
    li.each(function (index) {
      $(this).css('top', 60 * (index + 1)).css('width', '100%').css('margin-left', '0px');
    });
  }
});        

Akhir sekali, apabila setiap item senarai diklik, kandungan item senarai dipindahkan ke item pertama dan keseluruhan senarai ditutup.

links.on('click', function (e) {
  var $this = $(this), label = $this.data('label');
  icon = $this.children('i').attr('class');
  li.removeClass('active');
  if ($this.parent('li').is('active')) {
    $this.parent('li').removeClass('active');
  } else {
    $this.parent('li').addClass('active');
  }
  toggler.children('span').text(label);
  toggler.children('i').removeClass().addClass(icon);
  setClosed();
  e.preventDefault;
});        

Di atas adalah kesan yang dicipta oleh jQuery dan CSS3 untuk semua orang Ia adalah kesan kotak senarai lungsur yang sangat keren. Saya harap anda menyukainya

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn