如何更改针对不同屏幕尺寸显示的项目数
How to change the number of items displayed for different screen sizes
我正在尝试找到一种方法来针对不同的屏幕尺寸更改 carouselVisible
项的数量。我想在 768px 的屏幕分辨率下显示 3 个项目,当你在 360 度缩小时显示 1 个项目。
这可能吗?
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>
取决于,如果你需要动态调整,当你的用户调整页面大小时,你会做这样的事情:
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');
}
});
如果你只想做一次,那么很明显,你只会得到初始屏幕尺寸:
var width = $(window).width();
var height = $(window).height();
// Instantiate your carousel with parameters based on screen size
可以轻松使用swiperjs,还可以设置断点。来自示例
<Swiper
slidesPerView={1}
spaceBetween={10}
pagination={{
clickable: true
}}
breakpoints={{
"640": {
slidesPerView: 2,
spaceBetween: 20
},
"768": {
slidesPerView: 4,
spaceBetween: 40
},
"1024": {
slidesPerView: 5,
spaceBetween: 50
}
}}
className="mySwiper"
>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
<SwiperSlide>Slide 5</SwiperSlide>
<SwiperSlide>Slide 6</SwiperSlide>
<SwiperSlide>Slide 7</SwiperSlide>
<SwiperSlide>Slide 8</SwiperSlide>
<SwiperSlide>Slide 9</SwiperSlide>
</Swiper>
我正在尝试找到一种方法来针对不同的屏幕尺寸更改 carouselVisible
项的数量。我想在 768px 的屏幕分辨率下显示 3 个项目,当你在 360 度缩小时显示 1 个项目。
这可能吗?
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>
取决于,如果你需要动态调整,当你的用户调整页面大小时,你会做这样的事情:
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');
}
});
如果你只想做一次,那么很明显,你只会得到初始屏幕尺寸:
var width = $(window).width();
var height = $(window).height();
// Instantiate your carousel with parameters based on screen size
可以轻松使用swiperjs,还可以设置断点。来自示例
<Swiper
slidesPerView={1}
spaceBetween={10}
pagination={{
clickable: true
}}
breakpoints={{
"640": {
slidesPerView: 2,
spaceBetween: 20
},
"768": {
slidesPerView: 4,
spaceBetween: 40
},
"1024": {
slidesPerView: 5,
spaceBetween: 50
}
}}
className="mySwiper"
>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
<SwiperSlide>Slide 5</SwiperSlide>
<SwiperSlide>Slide 6</SwiperSlide>
<SwiperSlide>Slide 7</SwiperSlide>
<SwiperSlide>Slide 8</SwiperSlide>
<SwiperSlide>Slide 9</SwiperSlide>
</Swiper>