Mintik posted
3 year ago

Transit.js – Pürüzsüz geçişler ve dönüşümler

Transit

Başlık biraz yanlış oldu gibi.  Daha önceleri hazırladığım bir kaç tane  Css 2D ve 3D dönüşümlerde geçişler ve dönüşümler esnasında hafif  bir  titreme  olduğunu fark ettim. Bu tarz problemleri ortadan kaldırmak için   Rico Sta. Cruz  jQuery.Transit adında bir uygulama geliştiriyor. Eklenti olmasaydı eğer kendi başına bir Javascript kütüphanesi de  diyebilirdik Transit uygulamasına. Geliştirici belli ki çok emek sarf etmiş. Hemen hemen bütün dönüşümleri pürüzsüz  bir şekilde yapabilme özelliğine sahip.

Css3 transitions ve transforms kullanımı zevkli olduğu kadar biraz da can sıkıcı tarafları var. Her tarayıcı için tekrar tekrar aynı satırları eklemek zorunda kalıyorsunuz. Transit uygulaması sayesinde her tarayıcının fark edebilmesi için teker teker aynı satırı girmenize gerek yok. Kullanımı oldukça basit ve yapmanız gereken head etiketleri arasına js dosya adreslerini eklemek ardından kullanmak istediğiniz 2D yada 3D değerler için bir kaç satır javascript kod eklemek. 

Transit eklentisi ile  birlikte kullanabileceğiniz geçişler ve dönüşümler.

  • x(px)
  • y(px)
  • translate(x, y)
  • rotate(deg)
  • rotateX(deg)
  • rotateY(deg)
  • rotate3d(x, y, z, deg)
  • scale(x, [y])
  • perspective(px)
  • skewX(deg)
  • skewY(deg)

Kullanım : 

  • Head etiketleri arasına eklemeniz gereken bölümler.

Js dosya adresleri : 

<script src='jquery.js'></script>
<script src='jquery.transit.js'></script>

 Dönüşümler : 

$("#box").css({ x: '30px' });               // Sağa Kayma
$("#box").css({ y: '60px' });               // Aşağı Kayma
$("#box").css({ translate: [60,30] });      // Aşağı ve yukarı kayma
$("#box").css({ rotate: '30deg' });         // Saat yönünde döndür
$("#box").css({ scale: 2 });                // Yukarı doğru ölçek 2x (200%)
$("#box").css({ scale: [2, 1.5] });         // Yatay ve dikey ölçek
$("#box").css({ skewX: '30deg' });          // Yatay ölçek
$("#box").css({ skewY: '30deg' });          // Dikey ölçek
$("#box").css({ perspective: 100, rotateX: 30 }); // Webkit 3d rotation
$("#box").css({ rotateY: 30 });
$("#box").css({ rotate3d: [1, 1, 0, 45] });

Göreceli değerler : 

$("#box").css({ rotate: '+=30' });          // 30 degrees more
$("#box").css({ rotate: '-=30' });          // 30 degrees less

 İsteğe bağlı tüm birimler : 

$("#box").css({ x: '30px' });
$("#box").css({ x: 30 });

 Çoklu değerler  virgül ile  kullanılabilir : 

$("#box").css({ translate: [60,30] });
$("#box").css({ translate: ['60px','30px'] });
$("#box").css({ translate: '60px,30px' });

Alıcılar destekler

$("#box").css('rotate');     //=> "30deg"
$("#box").css('translate');  //=> ['60px', '30px']

Animating – $.fn.transition

$("#box").transition({ opacity: 0.1, scale: 0.3 });
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 500);                         // Süre
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 'fast');                      // Hafifletme
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in');                   // Süre+hafifletme
$("#box").transition({ opacity: 0.1, scale: 0.3 }, function() {..});             // Geri Çağırma
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in', function() {..});  // Herşey

 

$("#box").transition({
  opacity: 0.1, scale: 0.3,
  duration: 500,
  easing: 'in',
  complete: function() { /* ... */ }
});

 Desteklenen  Easing Tipleri

linear, ease, in, out, in-out, snap, easeOutCubic, easeInOutCubic, easeInCirc, easeOutCirc, easeInOutCirc, easeInExpo, easeOutExpo, easeInOutExpo easeInQuad, easeOutQuad, easeInOutQuad, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint, easeInOutQuint, easeInSine, easeOutSine, easeInOutSine, easeInBack, easeOutBack, easeInOutBack.

Mintik is curious about your thoughts. Add a comment
Did you know that members who log in don't see ads?
Sign in with E-mail