Yapay zeka ile geliştirilen, ek kütühane gerektirmeyen (animasyonlar dahil edilmedi), özelleştirilebilir içerik kaydırıcı...
Her slider için gerekli veriler data-*
öznitelikleriyle yapılandırılır.
<div id="slide1" class="gykkSlide"
data-auto="true"
data-timer="4500"
data-nav="true"
data-dot="true"
data-lazy="true"
data-loop="true"
data-pause="true"
data-count="1"
data-gap="0"
data-speed="500"
data-ain="fadeIn"
data-aout="fadeOut"
data-aduration="4000"
data-caption="true"
data-cin="slideInDown"
data-cout="slideOutUp"
data-cduration="1000"
data-cdelay="1000">
... ITEMS ...
</div>
.gykkSlide * {user-select:none}
.gykkSlide {position: relative;overflow: hidden}
.gykkSlide .dragging {cursor: grabbing;transition: none}
.gykkSlide .gykkSlide-container {display: flex}
.gykkSlide .gykkItem {position:relative;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:forwards}
.gykkSlide .gykkItem:has(.onScreen), .gykkSlide .gykkItem .caption {animation-delay:0.5s;animation-fill-mode:both}
.gykkSlide .gykkItem .caption.hidden {display:none;visibility:hidden;opacity:0}
.gykkSlide .gykkItem.active {left: 0;opacity: 1}
.gykkSlide .gykkItem.previous {left: -100%}
.gykkSlide img {display: block;width: 100%;height: auto;}
.gykkSlide .gykkSlide-navs {}
.gykkSlide .nav-button {position: absolute;top: 50%;transform: translateY(-50%);background-color: rgba(0, 0, 0, 0.5);color: white;border: none;padding: 10px;cursor: pointer;z-index: 10}
.gykkSlide .nav-button.prev {left: 10px}
.gykkSlide .nav-button.next {right: 10px}
.gykkSlide .gykkSlide-dots {text-align: center;margin-top: 10px}
.gykkSlide .dot {display: inline-block;width: 10px;height: 10px;margin: 5px;background-color: gray;border-radius: 50%;cursor: pointer}
.gykkSlide .dot.active {background-color: black}
/* optional: for caption animations */
.caption {position:absolute;top:25px;background-color:#fff;padding:10px 25px}
Parametre | Açıklama | Varsayılan Değer | Birim |
---|---|---|---|
data-auto | Otomatik slayt geçişi yapılacak mı | false | Boolean |
data-timer | Otomatik geçiş süresi (ms) | 3500 | ms |
data-nav | İleri/Geri butonları gösterilsin mi | false | Boolean |
data-dot | Dots navigasyonu gösterilsin mi | false | Boolean |
data-lazy | Resimleri lazy-load ile yükle | false | Boolean |
data-loop | Son slayttan sonra tekrar başa dönsün mü | true | Boolean |
data-pause | Hover sırasında otomatik geçişi durdur | false | Boolean |
data-count | Ekranda kaç öge gösterilecek | 1 | adet |
data-gap | Slaytlar arası boşluk | 0px | px * |
data-speed | Geçiş süresi | 500 | ms |
data-ain | Giriş animasyon sınıfı | class adı | |
data-aout | Çıkış animasyon sınıfı | class adı | |
data-aduration | Giriş ve çıkış animasyon süresi | 300 | ms |
data-caption | Slayt başlıkları (caption) gösterilsin mi ** | true | Boolean |
data-cin | Başlık giriş animasyonu | class adı | |
data-cout | Başlık çıkış animasyonu | class adı | |
data-cduration | Başlık animasyon süresi | 1000 | ms |
data-cdelay | Başlık animasyon gecikme süresi | 1000 | ms |
data-minw | Slaytların minimum genişlik değeri | 0 | px * |
* gap ve minw değerleri sabit px cinsinden verilebileceği gibi göreceli olarak da verilebilir. Erana göre [vw, vh, vmin, vmax] veya slider ana elemanına göre [%] veya diğer değişkenlere göre [em, rem, pt, cm, mm, in] tanımlanabilir.
** caption false ayarlanırsa slide alanı içindeki tüm .caption elemanları DOM'dan kaldırılır.
<div id="slide1" class="gykkSlide" data-count="1" data-auto="true" data-loop="true" data-nav="true" data-timer="4500" data-ain="fadeIn" data-aduration="2000">
<div class="gykkItem">
<img src="https://placehold.co/600x400?text=Slide+1">
<span class="caption">Caption 1</span>
</div>
<div class="gykkItem">
<img src="https://placehold.co/600x400/000000/FFF?text=Slide+2">
<span class="caption">Caption 2</span>
</div>
<div class="gykkItem">
<img src="https://placehold.co/600x400/000000/FFF?text=Slide+3">
<span class="caption">Caption 3</span>
</div>
<div class="gykkItem">
<img src="https://placehold.co/600x400/000000/FFF?text=Slide+4">
<span class="caption">Caption 4</span>
</div>
<div class="gykkItem">
<img src="https://placehold.co/600x400/000000/FFF?text=Slide+5">
<span class="caption">Caption 5</span>
</div>
</div>
#slide1 .caption {position:absolute;top:25px;background-color:#fff;padding:10px 25px}
<div id="slide2" class="gykkSlide" data-loop="true" data-nav="true" data-dot="true" data-lazy="true" data-auto="true" data-pause="true" data-timer="3500" data-speed="1500" data-count="3" data-gap="5%" data-minw="150" data-ain="zoomIn" data-aout="zoomOut" data-aduration="3000" data-caption="true" data-cin="flipInX" data-cout="flipOutX" data-cduration="1000" data-cdelay="1000" >
<div class="gykkItem"><img src="https://placehold.co/600x400?text=Slide+1" /><span class="caption">Caption 1</span></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/000000/FFF?text=Slide+2" /><span class="caption">Caption 2</span></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/5b1e1e/FFF?text=Slide+3" /><span class="caption">Caption 3</span></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/101267/FFF?text=Slide+4" /><span class="caption">Caption 4</span></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/FFFFFF/000?text=Slide+5" /><span class="caption">Caption 5</span></div>
<div class="gykkItem"><img src="https://placehold.co/600x400?text=Slide+6"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/000000/FFF?text=Slide+7"></div>
</div>
<div id="marqueestyle" class="gykkSlide" data-auto="true" data-timer="1500" data-nav="false" data-dot="false" data-loop="true" data-pause="true" data-count="3" data-gap="0" data-speed="1500">
<div class="gykkItem"><img src="https://placehold.co/600x400?text=Slide+1"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/000000/FFF?text=Slide+2"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/5b1e1e/FFF?text=Slide+3"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/101267/FFF?text=Slide+4"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/FFFFFF/000?text=Slide+5"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400?text=Slide+6"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/000000/FFF?text=Slide+7"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/5b1e1e/FFF?text=Slide+8"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/101267/FFF?text=Slide+9"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/FFFFFF/000?text=Slide+10"></div>
</div>
<style>
#gorselsiz .gykkItem {
text-align:center;
width:100%;aspect-ratio: 16 / 4; /* fixed */
background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab); background-size: 400% 400%; /* captionlar birbiri üzerinde görünmesin diye, düz renk de yapılabilir */
animation: gradient 15s ease infinite; /* bg animasyonlu da olabilir */
}
@keyframes gradient {0% {background-position: 0% 50%;}50% {background-position: 100% 50%;}100% {background-position: 0% 50%;}}
</style>
<div id="gorselsiz" class="gykkSlide" data-count="1" data-auto="true" data-caption="true" data-loop="1" data-nav="true" data-timer="4500" data-ain="fadeIn" data-aout="fadeOut" data-aduration="2000" data-cout="fadeOut" data-cin="morphIn" data-cduration="3000" data-cdelay="1000">
<div class="gykkItem"><img src="https://placehold.co/600x400?text=Slide+1"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/000000/FFF?text=Slide+2"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/5b1e1e/FFF?text=Slide+3"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/101267/FFF?text=Slide+4"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/FFFFFF/000?text=Slide+5"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400?text=Slide+6"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/000000/FFF?text=Slide+7"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/5b1e1e/FFF?text=Slide+8"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/101267/FFF?text=Slide+9"></div>
<div class="gykkItem"><img src="https://placehold.co/600x400/FFFFFF/000?text=Slide+10"></div>
</div>
data-minw="310"
"data-minw" slide öğelerinin alabileceği px cinsinden minimum genişiği belirler. Bu değer yazılırsa, data-count ile belirlediğiniz adete kadar olan slide öğesi bu genişliğin altına düşmeyecek şekilde eşit olarak dağıtılır.
calculateSizes()
"calculateSizes()" fonksiyonu ekran ebatına göre sığacak öğe sayısını dinamik olarak hesaplar ve yerleştirir.
Normal : gykkSlide.js ~ 14KB - UnMinified