2016-03-23 19 views
2

Farklı ekran boyutları için carouselVisible öğesinin numarasını değiştirmenin bir yolunu bulmaya çalışıyorum. Ben 3 öğeyi göstermek için ve 1 öğeye sahip olmak için 360 derece ölçeklendirdiğinizde 768px'lik bir ekran çözünürlüğünde istiyorum.Farklı ekran boyutları için görüntülenen öğe sayısı nasıl değiştirilir

Bu mümkün mü?

Demo

jquery

$('#carousel').cycle({ 
allowWrap: true, 
carouselVisible: 5, 
prev: '#prev', 
next: '#next', 
carouselFluid: true, 
timeout: 0, 
slides: 'article', 
fx: 'carousel' 
}); 

var slideshows1 = $('#carousel').on('cycle-next cycle-prev', function (e, opts) { 
slideshows1.not(this).cycle('goto', opts.currSlide); 
}); 
var slideshows2 = $('#carousel1').on('cycle-next cycle-prev', function (e, opts) { 
slideshows2.not(this).cycle('goto', opts.currSlide); 
}); 
$('#carousel article').click(function() { 
var count = $("#carousel1 .readmore").length - 1; 
var selectedIndex = $('#carousel').data('cycle.API').getSlideIndex(this); 
var index = selectedIndex<count ? selectedIndex: (selectedIndex-count)%count; 
slideshows1.cycle('goto', index); 
slideshows2.cycle('goto', index); 
}); 

Html

 <div class="service"> 
     <h1>Lead1</h1> 
    </div> 
</article> 
<article> 
    <div class="service"> 
     <h1>Lead2</h1> 
    </div> 
</article> 
</div> 
<div id="carousel1" data-allow-wrap="true" data-cycle-prev="#prev" data-cycle-next="#next" class="cycle-slideshow" data-cycle-timeout="0" data-cycle-manual-fx="scrollHorz" data-cycle-slides=".readmore"> 
<div class="readmore"> 
    <h2 class="lead">Lead</h2> 

    <p>Testing some text right here</p> <a class="cta" href="#">Läs mer</a> 

</div> 
<div class="readmore"> 
    <h2 class="lead">Lead1</h2> 

    <p>Testing some text right here</p> <a class="cta" href="#">Läs mer</a> 

</div> 
<div class="readmore"> 
    <h2 class="lead">Lead2</h2> 

    <p>Testing some text right here</p> <a class="cta" href="#">Läs mer</a> 

</div> 
</div> 
<div id="next">next</div> 
<div id="prev">prev</div> 
+0

Yapabileceğiniz ki eğer ':) farklı pencere boyutu için farklı bir kod yazarak ($ (pencere) .width()> 739) { // burada büyük ekranlar için javascript ekle } else ' – RRR

+0

** çok teşekkürler { // burada küçük ekranlar için javascript ekleyin}, bana gösterebilir misin Bir demo lütfen ** –

+0

nazikçe kontrol edin http://jsfiddle.net/r29A9/16/ – RRR

cevap

1

dinamik ayarlamak gerekiyorsa kullanıcı bir sayfayı boyutlandırdığında, sen böyle bir şey yapsın, bağlı bu:

Eğer sadece bir kez yapmak istiyorsanız
var properties = { 
    allowWrap: true, 
    carouselVisible: 5, 
    prev: '#prev', 
    next: '#next', 
    carouselFluid: true, 
    timeout: 0, 
    slides: 'article', 
    fx: 'carousel' 
} 

$(window).resize(function() { 
    var width = $(window).width(); 
    var height = $(window).height(); 
    var slideAmount; 

    if (width >= 768) { 
     slideAmount = 3; 
    } else if (width <= 360) { 
     slideAmount = 1; 
    } else { 
     slideAmount = 2; 
    } 

    if (properties.carouselVisible != slideAmount) { 
     $('#carousel').cycle('reinit'); 
    } 
}); 

, o zaman, tabii ki, sadece ilk ekran boyutunu alacağı:

var width = $(window).width(); 
var height = $(window).height(); 

// Instantiate your carousel with parameters based on screen size 
+0

** Çok teşekkürler, bana bir demo gösterebilir misin lütfen? –

+0

Sadece karusel seçeneklerinizi ayrı bir nesnede saklayın, sonra kontrol edin (genişlik <= 360) { properties.carouselVisible = 3; $ ('# Atlıkarınca') döngüsü ('reinit');.} – Eihwaz

İlgili konular