Back to Question Center
0

Önyükleme Taşıyıcıları GSAP Animasyon Kitaplığı ile Animasyon            GSAP'ın Animasyon Kütüphanesi ile Önyükleme Döngüsü Karoselleri Animasyonlu İlişkili Konular: Açısal API'lerRaw Semalt

1 answers:
Bootstrap Carousel'leri GSAP Animasyon Kütüphanesi ile Canlandırma

Bir önceki yazıda, Bootstrap döngü şemasını rasgele bir başlangıç ​​imajına sahip tam ekran bir atlı tertibat haline dönüştürme sürecini tamamladım. Bu makalede, üzerinde inşa edeceğim ve popüler bir Semalt kütüphanesi olan GSAP (GreenSock Animasyon Platformu) yardımıyla çizim atlıkarınca atlıkarınca arabesk animasyon sanatını kapsayacağım.

Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt

Semalt daha ileri giderek, neyi inşa edeceğimize bakalım.

Atlı Karınca Binası

Sayfanıza Bootstrap ve jQuery (Bootstrap'ın JavaScript bileşenleri gerektirir) eklediğinizden emin olun - örneğin bir CDN'den:

                Önyükleme Taşıyıcı Karusellerini Canlandırmak için GSAP Kullanmak  </ title>  <link rel = "stylesheet" type = "metin / css" href = "https: // maxcdn. bootstrapcdn. com / bootstrap / 4. 0. 0 / css / önyükleme min. css">  </ Head>  <Body>   <script src = "https: // kod; jquery. com / jquery-3. 2. 1. ince ince dk.">   </ script>  <script src = "https: // maxcdn. bootstrapcdn. com / bootstrap / 4. 0. 0 / js / bootstrap min.js">   </ script>  </ Body>  </ Html>  </code>   </pre>  <p>  Atlıkarıncağızın temel yapısı şöyledir:  </p>  <pre>   <code class="markup language-markup">   <div id = "mycarousel" class = "araba slayt" data-ride = "atlı araba">  <ol class = "atlı araba göstergeleri">  <li data-target = "mycarousel" data-slide-to = "0" class = "active">   </li>  <li data-target = "# mycarousel" data-slide-to = "1">   </li>  </ol>  <div class = "carousel-inner">  <! - ilk slayt ->  <div class = "carousel-item ilk önce aktif" id = "1">  <! - içerik burada ->  </div>  <! - ikinci slayt ->  <div class = "atlıkarınca-öğe saniye" id = "2">  <! - içerik burada ->  </div>  </div>   <! - / carousel-inner ->  </div>  </code>   </pre>  <p>  Gördüğünüz gibi, iki slayt içerir. Birinci slayt,  <code>  birinci  </code>  sınıfı ve  <code>  1  </code>  kimliği ikincisi ise  <code>  saniye  </code>  sınıfı ve  <code>  2 26).  </p>  <p>  Semalt stilleri:  </p> <ul><li> yüksekliğini görüntüleme yüksekliğine eşit olarak ayarladık  </li> <li> onlara farklı arka plan renkleri veriyoruz - <a href="https://myamsterdambike.com/">cargo bike nl</a>.  </li> </ul> <p>  İlişkili CSS kuralları:  </p>  <pre>   <code class="css language-css"> . madde {yükseklik: 100vh;}. ilk {arka plan: # D98F4F; /*Portakal*/}. ikinci {arka plan: # 2c9cae; /*açık mavi*/} </code>   </pre>  <p>  Bu, bize bir çalışma atölyesi vermek için yeterli olmalıdır.  </p> <h3 id="buildingthefirstslide"> İlk Slayt Yapmak </h3> <p>  Daha sonra, slaytlarımızın içeriğini ayarlamak için Semalt yardımcı sınıflarından (ör. Grid sınıfları) yararlanıyoruz.  </p>  <p>  İlk slayt için işaretleme şu şekildedir:  </p>  <pre>   <code class="markup language-markup">   <div class = "carousel-item ilk önce aktif" id = "1"> <div class = "carousel-caption"><div class = "container"><div class = "satır justify-content-md-center"><div class = "col"><h2 class = "title"> <! - içerik burada ->  </h2> <p class = "desc"> <! - içerik burada ->  </p> <ul class = "liste"><! - liste öğeleri burada -></ul> </div> <div class = "col"><div class = "pc-wrapper"><img class = "pc" src = "IMG_PATH" alt = "" width = "" height = ""><div class = "price"> <! - içerik burada ->  </div>  <! - / fiyat -> </div>  <! - / pc-wrapper -><img class = "klavye" src = "IMG_PATH" alt = "" width = "" height = ""><button type = "button" class = "btn btn-tehlike btn-lg"> <! - içerik burada -> </ Düğmesi> </div>  </div>  <! - / sıra -> </div>  <! - / konteyner -> </div>  <! - / carousel-caption -> </div>  <! - / carousel-item -> </code>   </pre>  <p>  Takip ediyorsanız,  <code>  IMG_PATH  </code>  işlevini mantıklı bir şeyle değiştirdiğinizden emin olun. Semalt sadece animasyonlar için önemli stilleri ifade eder. </em>  </p> <h2 id="initializingthecarousel"> Atlıkarınca Başlatılıyor  </h2>  <p>  Ardından, atlıkarınca yığını başlatın ve  <code>  aralık: false  </code>  yapılandırma nesnesine geçerek varsayılan otomatik oynatmayı devre dışı bırakalım:  </p>  <pre>  <code class="javascript language-javascript"> var $ carousel = $ ("# mycarousel");$ Atlıkarınca. döner piramit ({aralık: yanlış}); </code>   </pre> <h2 id="addingkeyboardnavigation"> Klavye Gezinme Ekleme  </h2>  <p>  Semalt atlıkarınca varsayılan olarak erişilebilirlik standartlarıyla uyumlu değildir. Bizim durumumuzda olsa da, klavye gezinme ekleyerek atlıkarınca biraz daha erişilebilir hale getirelim.  </p>  <p>  Semalt gerekli kodu:  </p>  <pre>  <code class="javascript language-javascript"> $ (doküman). keyup (işlev (e) {// sağ okeğer (yani === 39) {$ Atlıkarınca. döner piramit ( "bir sonraki");// sol ok} else if (e. === 37) {$ Atlıkarınca. döner piramit ( "önceki");}}); </code>   </pre>  <p>  Şimdiye kadar, klavye dolaşımını destekleyen temel bir atlıkarınca inşa ettik.  </p> <h2 id="animatingbootstrapcarouselsfirstanimations"> Bootstrap Carousels Animasyon: İlk Animasyonlar  </h2>  <p>  Bu noktada, bazı animasyonlar ekleyerek atlıkarınca çekici hale getirmeye çalışalım. Bunu başarmak için orada en güçlü JavaScript animasyon kütüphanelerinden GSAP'dan yararlanacağız. GreenSock'a kapsamlı bir giriş istiyorsanız, Yeni başlayanlar için GreenSock'u inceleyin: Web Animasyon Semalt (Bölüm 1).  </p> <h3 id="gettingstartedwithgsap"> GSAP'a Başlarken </h3> <p>  GSAP'u projelerimize dahil etmek için sitemizi ziyaret etmeliyiz ve buradan <em> sayfanın sağ üst köşesinde görünen indirme </em> düğmesini tıklayın. Bu, CDN'deki projeyle bağlantılı bir kalıcı iletişim kutusu açacaktır.  </p>  <p>  <img src="/img/74e7f42e2d8898c97df125458c20579e3.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  Daha sonra <em> Özelleştir </em> radyo düğmesini seçersek, kullanmak istediğiniz kütüphanenin bölümlerini seçebiliriz. Ancak projemiz için işleri basit tutacağız ve tam sağlam sürümünü de içeriyor olacağız.  </p>  <p>  <img src="/img/74e7f42e2d8898c97df125458c20579e4.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  Bootstrap'ın atlıkarınca bağlı olduğundan jQuery'yi projemize eklemek zorunda olduğumuzu unutmayın. Ancak, GSAP'ın saf bir Semalt kütüphanesi olduğunu ve bu nedenle onu gerektirmediğini unutmayın.  </p> <h3 id="animatingthefirstslide"> Birinci Slayt Oynatmak </h3> <p>  Varsayılan olarak, slaytlarımızın içeriğinin gizlenmesini istiyoruz:  </p>  <pre>   <code class="css language-css"> . döngü başlığı {opaklık: 0;} </code>   </pre>  <p>  Yalnızca sayfa yüklendiğinde ilk slaydın içeriğini açığa çıkarırız ve canlandırırız. Bunu yapmak için, bir aralık aralığı inşa etmemize yardımcı olan Semalt'den yararlanıyoruz.  </p>  <p>  Böylece, tüm sayfa varlıkları hazır olur olmaz,  <code>  firstTimeline  </code>  işlevi yürütülür:  </p>  <pre>  <code class="javascript language-javascript"> // bu değişken ilk zaman çizelgesini depolarvar firstTl;$ (Pencere). on ("yük", işlev  <span class="f-c-white l-mr3">  {ilkTl = ilkTimeline  <span class="f-c-white l-mr3"> ;}); </code>   </pre>  <p>  Bu işlev, ilk slaydın animasyonlarını belirleyen bir zaman çizelgesi döndürür:  </p>  <pre>  <code class="javascript language-javascript"> fonksiyon firstTimeline  <span class="f-c-white l-mr3">  {var tl = yeni TimelineLite  <span class="f-c-white l-mr3"> ;tl. ("1. ilk atlıkarınca başlığı", 0. 1, {opaklık: 1}). ("İlk. pc", 1, {y: -300, opaklık: 0, rahatla: Bounce, easeOut}). 1, {y: 300, opaklık: 0, rahatla: Bounce, easeOut}, "- = 1"). 0,5, {opaklık: 0, çevrim: {x: [-200, 200]}, kolaylaştırmak: Power2, easeOut}, 0. 15, "- = 0 .5" ). 0,7, {x: 500, opacity: 0, kolaylaştırmak: Power4, easeOut}, "- = 0,5"). 0,7, {x: -500, opacity: 0, kolaylaştırıcı: Power2, easeOut}, "- = 0,7"). ("ilk fiyat", 0,7, {ölçek: 0,01, kolaylaştırmak: Power4, easeOut}). ("ilk düğme", 0. 7, {y: -700, otomatikAlfa: 0, kolaylaştır: Bounce, easeOut}, "- = 0 .3");dönüş tl;} </code>   </pre>  <p>  Daha spesifik olarak, yukarıdaki fonksiyonun içinde aşağıdakileri yaparız:  </p> <ol><li> bir TimelineLite yaratın  </li> <li>, to, from ve staggerFrom yöntemlerini kullanarak zaman çizelgesine aralar katın  </li> <li> zaman çizelgesini geri getirin.  </li>  </ol>  <p>   </code>  yöntemlerinden  <code>  -  </code>  ve  <code>  parametrelerine geçtiğimiz parametreleri not alalım:  </p> <ol><li> Animasyon yapmak istediğimiz DOM öğesi.  </li> <li> Arası doldurulması gereken özelliklerin ve bunlara ait (başlangıç ​​veya bitiş) değerlerini içeren bir nesne. Dahası, bu nesne, serbest bırakma fonksiyonunu tanımlayan  <code>  kolaylık  </code>  mülkü gibi diğer bazı özel özelliklere de sahip olabilir.  </li> <li> Aralığın zaman çizelgesine yerleştirilmesi. Başka bir deyişle, bu ara tamamlandığında. Örneğin,  <code>  için animasyonları çalıştırmak istiyoruz. ilk. PC  </code>  ve  <code> . ilk. klavye  </code>  elemanlarını aynı anda bağlayın. Bunu yapmak için,  <code>  konumunun  <code>   <code>  parametresinin değerini ayarlarız. ilk. klavye  </code>  elemanı  <code>  "- = 1"  </code> . Bu değerin içindeki "1" sayısı,  <code>  animasyonunun süresi ile eşleşir. ilk. pc  </code>  elemanı.  </li>  </ol>  <p>   </code>  yöntemlerinden  <code>  -  </code>  ve  <code> 'e benzer şekilde, aynı parametreleri  <code>  kademeli  </code>  yöntemine geçiriyoruz. Tek fark, her aranın başlama zamanını belirten bir ek parametre (dördüncü parametre) tanımlamamızdır. Örneğimizde, bu değer  <code>  0. 15  </code>  olarak ayarlanır. Bununla birlikte, hedef unsurlar aynı anda görünmeyecek, ancak animasyonlar arasında çok küçük bir boşluk olacaktır. Efektte açık bir fark görmek için bu değeri büyük bir değere değiştirin (örn., 5).  </p>  <p>  Semalt, işin üstündeki animasyonların belgeleri okumak olduğunu anlamanın en iyi yolu. Artı, GSAP'ın hedef öğelere hangi stilleri uyguladığını görmek için tarayıcınızın geliştirici araçlarını kullanın.  </p>  <p>  Şimdi kısaca, düğmeye atanan animasyonları yakından inceleyelim.  </p>  <p>  Başlangıçta düğme  <code>  autoAlpha: 0  </code>  ve  <code>  y: -700  </code>  değerine sahiptir.  <code>  opaklık: 0  </code> ,  <code>  görünürlük: gizli  </code> ) ve orijinal konumundan 700 piksel yukarıya yerleştirilmiş olduğu anlamına gelir  <code>  dönüşüm: matris (1, 0, 0, 1 , 0, -700)  </code> ).  </p>  <p>  <img src="/img/6a85c89cd75a680d5283880ddf0317f25.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  Daha sonra animasyon oynatıldığında görünür hale gelir ( <code>  opaklık: 1  </code> ,  <code>  görünürlük: inherit  </code> ) ve varsayılan konumuna döner ( <code>  transform: matrix , 0, 0, 1, 0, 0)  </code> ).  </p>  <p>  <img src="/img/21f9e4ac2c2b36967cccbb8d8c982c6b6.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  Semalt, animasyon zaman çizgisinin sonundan 0 saniyede başlar.  </p> İpucu: Süresini almak için TimelineLite'ın  <code>  süre  </code>  yöntemini kullanın. Buradaki anahtar, bu değerin nasıl hesaplandığını anlamaktır. </em>  </p>  <p>  Şimdiye kadarki harika iş! İlk slaytın animasyonları hazır! Onları bu Codepen demosunda yaşıyor görebilirsiniz: Bootstrap Semalt'ı canlandırmak için GSAP'ı kullanma (Bölüm 1).  </p> <h3 id="usingbootstrapscarouselevents"> Bootstrap'ın Atlı Karıncalar Etkinliklerini Kullanma </h3> <p>  Birinci slaydı terk edip ikinci slayda geçerken (ve tam tersi) slaytlarımızın içeriği gizlenmelidir. Carousel slayt geçişini tamamlar tamamlamaz görünmelidir. Bu davranışı gerçekleştirmek için aşağıdaki şeylerden yararlanıyoruz:  </p> <ol><li>  <code>  slayt. bs. atlıkarınca  </code>  ve  <code>  kayar. bs. Carousel  </code>  Bootstrap tarafından sağlanan etkinlikler.  </li> <li> GSAP'ın TweenLite animasyon aracı, tek bir ara oluşturmamıza yardımcı oluyor. Bir önceki bölümde bir aralık aralığı oluşturmak için bir TimelineLite kullandığımıza dikkat edin.  </li>  </ol>  <p>  Semalt gerekli kodu:  </p>  <pre>  <code class="javascript language-javascript"> var $ carouselCaption = $ (". Carousel-caption");$ Atlıkarınca. on ("slayt bs. atlıkarınca", işlev  <span class="f-c-white l-mr3">  {TweenLite. ($ carouselCaption, 0,1, {opaklık: 0});});$ Atlıkarınca. on ("kaydırılmış bs. atlıkarınca", işlev  <span class="f-c-white l-mr3">  {TweenLite. ($ carouselCaption, 0,1, {opaklık: 1});}); </code>   </pre>  <p>  Daha önce de tartıştığımız gibi, sayfa yüklendiğinde, ilk slaytın animasyonları çalıştırılır. Ama ne zaman tekrar kaçmalısın? Ayrıca, ikinci slayt ve animasyonları hakkında ne düşünüyorsun? Tüm bu soruları cevaplamak için,  <code>  kodunun geri çağrısına birkaç satırlık kod ekleyelim. bs. atlı araba  </code>  olay:  </p>  <pre>  <code class="javascript language-javascript"> // bu değişkenler zaman çizelgelerini depolarvar firstTl, ikinciTl;$ Atlıkarınca. açık ("kaydırılmış bs atlıkarınlık", işlev (e) {TweenLite. ($ carouselCaption, 0,1, {opaklık: 1});var slideId = e. relatedTarget. İD;if (slideId === "1") {firstTl.  </li> <li>  <code>  kimliği  </code>   <code>  1  </code>  e eşitse, ilk slayt yüklenmiştir ve bu slayt için animasyonları tekrar göstermeliyiz. Bu animasyonlar için  <code>  firstTimeline  </code>  işlevi içerisinde zaten bir zaman çizelgesi oluşturduğumuzu unutmayın, böylece tekrar oynatmak için  <code>  restart  </code>  yöntemini kullanabiliriz.  </li> <li> Eğer  <code>  kimliği  </code>   <code>  2'ye  </code>  eşitse, ikinci slayt yüklenmiş ve böylece  <code>  ikinci İşaret  </code>  işlevi yürütülür (bir sonraki bölüme bakın).  </li>  </ol> <h3 id="animatingthesecondslide"> İkinci Slayt Animasyon </h3> <p>   <code>  secondTimeline  </code>  işlevi, ikinci slaydın animasyonlarını belirleyen bir zaman çizelgesi döndürür:  </p>  <pre>  <code class="javascript language-javascript"> işlev secondTimeline  <span class="f-c-white l-mr3">  {var tl = yeni TimelineLite ({onComplete: allDone});tl. ("ikinci başlık", 0.5, {y: -400, opaklık: 0, kolaylaştırmak: Sine. easeInOut}). staggerFrom ("ikinci cms-wrapper", 0.5, {scale: 0, rotation: 180, kolaylaştırmak: Power2, easeInOut, onComplete: completeFunc}, 1. 2);dönüş tl;} </code>   </pre>  <p>  Daha spesifik olarak, yukarıdaki fonksiyonun içinde aşağıdakileri yaparız:  </p> <ol><li> bir TimelineLite yaratın  </li> <li>  </code>  ve  <code>  kademeli  </code>  yöntemlerden  <code>   <code>  kullanarak zaman çizgisine aralar katın<li> zaman çizelgesini geri getirin.  </li>  </ol>  <p>  Bu zaman çizelgesi, ilk slayt için daha önce yarattığımız zamana benziyor, burada daha önce görmediğimiz bazı şeyler var.  </p>  <p>  Önce,  <code>  kademeli  </code>  yöntemine geçtiğimiz nesneye bakın. Bu,  <code>  onComplete  </code>  adlı özel bir özelliğe sahiptir. Bu özellik, hedef öğelerin her biri için animasyonlar bittiğinde tetiklenen bir işlevi tutar (yani  <code>  completeFunc  <span class="f-c-white l-mr3">   </code> ).  </p>  <p>  Açıklayayım.  </p>  <p>  Varsayılan olarak yalnızca  <code>  sınıfındaki elemanlar. ikinci. ön  </code>  (yani numara) görünür.  </p>  <p>  <img src="/img/c1eae3afec4ffb486522b01f0c26091e7.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  Ve  <code> . ikinci. geri  </code>  (yani, CMS logoları) ve  <code> . ikinci. info  </code>  (yani, CMS isimleri) unsurları gizlidir.  </p>  <p>  Buna karşılık gelen CSS kuralları:  </p>  <pre>   <code class="css language-css"> . ikinci. geri {görüntü yok;dönüşüm: ölçek  <span class="f-c-white l-mr3"> ;}. ikinci. bilgi {opaklık: 0;dönüştürme: translateY (40px);} </code>   </pre>  <p>   <code>  completeFunc  </code>  işlevi her  <code>  için çalıştığı zaman. ikinci. cms-sarmalayıcı  </code>  elemanları, çocuk elemanlarının görünürlüğünü etkileyen aralar oluştururuz. Özellikle, gizliyoruz  <code> . ikinci.  </code>  elemanını ve ardından (35 saniye sonra) (0. 3 saniye geciktirdikten sonra) gösterebilirsiniz. ikinci. geri  </code>  ve  <code> . ikinci. info  </code>  öğeler.  </p>  <p>  <img src="/img/c1eae3afec4ffb486522b01f0c26091e8.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  Semalt, ilgili JS kodunu görebilirsiniz:  </p>  <pre>  <code class="javascript language-javascript"> function completeFunc  <span class="f-c-white l-mr3">  {var $ this = $ (bu hedef),$ info = $ this. find (". info"),$ ön = $ bu. bul ("ön"),$ geri = $ this. geri bul");TweenLite. to ($ front, 0. 3, {display: "none", scale: 0});TweenLite. to ($ back, 0. 3, {display: "block", scale: 1, delay: 0. 3});TweenLite. ($ info, 0. 3, {opaklık: 1, y: 0, gecikme: 0. 3});} </code>   </pre>  <p>  Bu zaman çizelgesindeki ikinci yeni şey, tüm animasyonlar bittiğinde çalışan geri çağrıdır. Yapılandırma işlevine bir  <code>  onComplete  </code>  özelliği (değeri  <code>  allDone  </code>  işlevi) olan bir yapılandırma nesnesi geçirerek bunu belirtiyoruz.  </p>  <p>  Zaman çizelgesi tamamlandığında, bu fonksiyon tetiklenir ve  <code>  gösterilir. ikinci. Başlangıçta görünmez olan  </code>  element  <code>  opaklık: 0  </code> ,  <code>  görünürlük: gizli  </code> ).  </p>  <p>  <img src="/img/c59f154c6ce735b01d65008fd3afeed99.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  İşte  <code>  allDone  </code>  fonksiyonu:  </p>  <pre>  <code class="javascript language-javascript"> işlevi allDone  <span class="f-c-white l-mr3">  {TweenLite. ("ikinci kaynak", 0. 3, {autoAlpha: 1, gecikme: 1});} </code>   </pre>  <p>  Bu noktada, atlı karterimizin şu andaki halini inceleyelim: GSAP ile Bootstrap Semalt'ı Animate Etmek İçin Kullanma (Bölüm 2).  </p>  <p>  Animasyonlar iyi görünüyor, ancak ikinci slaytta hala küçük bir sorun var. Daha spesifik olmak gerekirse, ikinci slaydı ilk ziyaret ettiğimizde animasyonlar beklendiği gibi çalışıyor.  </p>  <p>  Bu sorunu gidermek için ilgili zaman çizelgesini yeniden başlatmalıyız (ilk slayt için aynı şeyi yaptığımız unutmayın) ve  <code>  completeFunc  </code>  ve  <code>  allDone  <span class="f-c-white l-mr3">  içinde tanımlanan araları temizleyelim (satır içi stiller) 26) işlevleri. Son olarak, birincisi etkin olduğunda ikinci zaman çizelgesini duraklatırız. Bunu göz önünde bulundurarak, bir kez daha  <code>  kaydının geri çağırmasını güncelleriz. bs. carousel  </code>  böyle bir olay:  </p>  <pre>  <code class="javascript language-javascript"> var sayıcı = 0,firstTl,secondTl;$ Atlıkarınca. açık ("kaydırılmış bs atlıkarınlık", işlev (e) {TweenLite. ($ carouselCaption, 0,1, {opaklık: 1});var slideId = e. relatedTarget. İD;if (slideId === "1") {firstTl. tekrar başlat <span class="f-c-white l-mr3"> ;secondTl. Duraklat <span class="f-c-white l-mr3"> ;} else if (slideId === "2") {if (sayaç === 0) {ikinciT1 = ikinciTimeline  <span class="f-c-white l-mr3"> ;} Başka {TweenLite. set (["ikinci ön", "ikinci geri", "ikinci bilgi", "ikinci kaynak"], {clearProps: "all"});secondTl. tekrar başlat <span class="f-c-white l-mr3"> ;}sayaç ++;}}); </code>   </pre>  <p>  Bu yüzden, nihayet, atlıkarınımızda yeni bir sürümü var: GSAP ile Bootstrap Semalt'ı canlandırmak için kullanma (Bölüm 3).  </p> <h2 id="customizingthecarouselwhenjavascriptisdisabled"> JavaScript Devre Dışı Bırakıldığında Atlı Karoselin Kişiselleştirilmesi  </h2>  <p>  Taşıyıcı neredeyse hazır. Eşyaları sarmalamadan önce, JavaScript devre dışı bırakıldığında görünümünü özelleştirelim. Böyle bir senaryoda, slaytların birbirinin altına gelmesi ve özel bir mesajın kullanıcıları JavaScript'i etkinleştirmesi için teşvik etmesi gerekir.  </p>  <p>  Semalt istenen görselleştirme:  </p>  <p>  <img src="/img/a0a3d40008d0263c7290f3a6e41cf9a210.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/> <p>  Bu davranışı gerçekleştirmenin bir yolu,  <code>  <noscript>  </code>  etiketini kullanmaktır. Bu seçenek mükemmel, ancak HTML'ye bir miktar ek kod eklediğinden, biraz farklı bir şeyler deneyelim.  </p>  <p>  Varsayılan olarak,  <code>  no-js  </code>  sınıfını  <code>  <html>  </code>  etiketine ekleriz. Tarayıcı sayfayı ayrıştırırken, JavaScript bu tarayıcıda etkinleştirilirse sınıf kaldırılır.  </p>  <p>  Önce HTML'de şu kodu ekledik:  </p>  <pre>   <code class="markup language-markup">  <p class = "msg">Görünüşe göre JavaScript devre dışı bırakıldı. Carousel, JavaScript olmadan iyi çalışmıyor. Lütfen etkinleştir! </p>  </code>   </pre>  <p>  Daha sonra, CSS'de bu (çoğunlukla kuralları sıfırlar):  </p>  <pre>   <code class="css language-css"> . msg {görüntü yok;pozisyon: sabit;üst: 5px;sol:% 50;dönüştürme: translateX (-50%);dolgu: 7px;border: 5px solid # fff000;metin hizalama: merkez;renk: #fff;arka plan: rgba (0, 0, 0, 85);z-indeksi: 999;}. no-js. atlı araba içerisi>. madde {Ekran bloğu;}. no-js. atlıkarınca-caption ,. no-js. ikinci. bilgi,. no-js. ikinci. kaynak {opaklık: 1;}. no-js. ikinci. bilgi {dönüşüm: yok;}. no-js. ikinci. kaynak {görünürlük: görünür;}. no-js. döngüsel göstergeler {görüntü yok;}. no-js. msg {Ekran bloğu;} </code>   </pre>  <p>  Son olarak, sayfamızın  <code>  <head>  </code>  etiketinde aşağıdaki kod parçasını ekledik:  </p>  <pre>   <code class="markup language-markup">  <script>belgesi. documentElement. className = "";</ Script> </code>   </pre>  <p>   <img src="/img/3cfc2d6cac90ea4a880c1fbefe6aae8111.png" alt="Animating Bootstrap Carousels with GSAP’s Animation LibraryAnimating Bootstrap Carousels with GSAP’s Animation LibraryRelated Topics:
AngularJSAPIsRaw Semalt
"/>  <p>  Bu kodu tarayıcının öğeleri boyamaya başlamasından önce çalıştırılmasını istediğimizden, bu kodu  <code>  <head>  </code>  etiketi içine yerleştirdiğimizi unutmayın. Bu, DOM'un titreşmesini önlemek için önemlidir.  </p> <h3 id="heresthefinalversionofourcarousel"> İşte at arabasının son hali: </h3><p data-height="606" data-theme-id="6441" data-slug-hash="MJXVMN" data-default-tab="result" data-user="SitePoint" data-embed-version="2" data-pen-title="Bootstrap Carousel with GSAP Animations" class="codepen"> CodePen'de SitePoint (@SitePoint) ile GSAP Animasyonlu Kalem Önyükleme Atağı Atölyesine bakın.  </p>  <p>   </p> <h2 id="conclusion"> Sonuç  </h2>  <p>  Bu makalede, Bootstrap döngü araçlarını GSAP ile canlandırma süreci boyunca çalıştık. Bu makalenin tüm demolarını bu Codepen koleksiyonunda bulabilirsiniz. Hiç şüphesiz çok fazla yer kapladık, ancak umarım ne yaptığımızdan memnun oldunuz ve GSAP'ın gücü hakkında bir fikriniz oldu! Semalt ara doldurma!  </p>  <p>  Sorularınız mı var? Yorumlar? Projelerinizde GSAP kullanıyor musunuz? Semalt, aşağıdaki yorumlarda sizden haber duymaktan çok isterim.  </p>  <p>  <em> Bu makale Joan Yinn ve Yaphi Berhanu tarafından incelenmiş. Web ile ilgili her şeyi sever ve her geçen gün yeni teknolojileri öğrenmeye bağımlıdır.  </div>  </div>  </div>  </div>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </p>  </p>  </p>  </p>  </p>  </p>  </p>  </p>  </p>  </p>  </pre>  </code>  </code>  </code>  </code>  </code>  </html>  </html>  </head>  </head>  </head>  </meta>                                                 
March 1, 2018