如何在 React 中使 owl-carousel 响应?
How to make owl-carousel responsive in React?
我正在使用 react-owl-carousel 包。
https://www.npmjs.com/package/react-owl-carousel
我已经按照说明成功实现了代码,轮播运行很顺利。
问题:目前我同时显示 4 个项目。而在每一个画面中,都会出现这4个项目。我想显示 768px 到 1200px 之间的设备的 3 个项目,500px 到 767px 之间的 2 个项目和 499px 以下的设备的 1 个项目,而不是 4。
包含 "responsive" 的选项在 owl 轮播文档中。但我想知道如何将它包括在内以实现相同的目的。
这是我到目前为止所做的。
import React, { Component } from 'react';
import {Grid, Row, Col , ProgressBar } from 'react-bootstrap';
import UserAvtar from '../common/UserAvtar.js';
import SectionHeaderOfCards from '../common/SectionHeaderOfCards.js';
import OwlCarousel from 'react-owl-carousel';
const options = {
items: 4,
};
class DashboardPage extends Component {
render() {
return (
<div>
<section className="has-small__padding has-grey__bg">
<UserAvtar />
</section>
<section className="has-small__padding">
<Grid>
<SectionHeaderOfCards title="Recommended Matches" />
<OwlCarousel margin={10} >
<div class="item"><h4>1</h4></div>
<div class="item"><h4>2</h4></div>
<div class="item"><h4>3</h4></div>
<div class="item"><h4>4</h4></div>
<div class="item"><h4>5</h4></div>
<div class="item"><h4>6</h4></div>
</OwlCarousel>
</Grid>
</section>
</div>
);
}
}
export default DashboardPage;
您必须使用 OwlCarousel 选项 responsive
。
请查看owlcarousel2 API options to here的官方文档。
例如,为您的项目状态使用以下选项。
options:{
loop: true,
margin:10,
nav:true,
responsive:{
0:{
items:1
},
600:{
items:3
},
1000:{
items:5
}
}
},
请查看 here 的演示示例。
希望对您有所帮助。
您可以在 React 中使 owl-carousel 响应,如下所述:
第 1 步:您需要在需要 owl-carousel... 的同一组件中创建 state。
就像你有 slider.js 组件,所以你必须在同一个文件中创建 state ..就像这样;
第 2 步:您创建的状态在 owl-carousel
中以响应式 属性 初始化
import OwlCarousel from 'react-owl-carousel';
import $ from 'jquery';
import 'owl.carousel/dist/assets/owl.carousel.css';
import 'owl.carousel/dist/assets/owl.theme.default.css';
class Slider extends Component {
state= {
responsive:{
0: {
items: 1,
},
450: {
items: 2,
},
600: {
items: 3,
},
1000: {
items: 4,
},
},
}
render() {
return (<OwlCarousel className={'owl-theme'}
loop={true}
margin={10}
nav={true}
dots={false}
autoplay={true}
autoplayTimeout={2000}
items={4}
responsive={this.state.responsive} >
<div className={'item'}>
Item 1
</div>
<div className={'item'}>
Item 2
</div>
<div className={'item'}>
Item 3
</div>
<div className={'item'}>
Item 4
</div>
<div className={'item'}>
Item 5
</div>
</OwlCarousel>
你可以关注 -
import OwlCarousel from 'react-owl-carousel';
import 'owl.carousel/dist/assets/owl.carousel.css';
const options = {
margin: 30,
responsiveClass: true,
nav: true,
dots: false,
autoplay: false,
navText: ["Prev", "Next"],
smartSpeed: 1000,
responsive: {
0: {
items: 1,
},
400: {
items: 1,
},
600: {
items: 2,
},
700: {
items: 3,
},
1000: {
items: 5,
}
},
};
class Slider extends Component {
render() {
return (
<div>
<OwlCarousel className="slider-items owl-carousel" {...options}>
...
</OwlCarousel>
</div>
);
}
}
export default Slider;
我正在使用 react-owl-carousel 包。
https://www.npmjs.com/package/react-owl-carousel
我已经按照说明成功实现了代码,轮播运行很顺利。
问题:目前我同时显示 4 个项目。而在每一个画面中,都会出现这4个项目。我想显示 768px 到 1200px 之间的设备的 3 个项目,500px 到 767px 之间的 2 个项目和 499px 以下的设备的 1 个项目,而不是 4。
包含 "responsive" 的选项在 owl 轮播文档中。但我想知道如何将它包括在内以实现相同的目的。
这是我到目前为止所做的。
import React, { Component } from 'react';
import {Grid, Row, Col , ProgressBar } from 'react-bootstrap';
import UserAvtar from '../common/UserAvtar.js';
import SectionHeaderOfCards from '../common/SectionHeaderOfCards.js';
import OwlCarousel from 'react-owl-carousel';
const options = {
items: 4,
};
class DashboardPage extends Component {
render() {
return (
<div>
<section className="has-small__padding has-grey__bg">
<UserAvtar />
</section>
<section className="has-small__padding">
<Grid>
<SectionHeaderOfCards title="Recommended Matches" />
<OwlCarousel margin={10} >
<div class="item"><h4>1</h4></div>
<div class="item"><h4>2</h4></div>
<div class="item"><h4>3</h4></div>
<div class="item"><h4>4</h4></div>
<div class="item"><h4>5</h4></div>
<div class="item"><h4>6</h4></div>
</OwlCarousel>
</Grid>
</section>
</div>
);
}
}
export default DashboardPage;
您必须使用 OwlCarousel 选项 responsive
。
请查看owlcarousel2 API options to here的官方文档。
例如,为您的项目状态使用以下选项。
options:{
loop: true,
margin:10,
nav:true,
responsive:{
0:{
items:1
},
600:{
items:3
},
1000:{
items:5
}
}
},
请查看 here 的演示示例。
希望对您有所帮助。
您可以在 React 中使 owl-carousel 响应,如下所述: 第 1 步:您需要在需要 owl-carousel... 的同一组件中创建 state。 就像你有 slider.js 组件,所以你必须在同一个文件中创建 state ..就像这样;
第 2 步:您创建的状态在 owl-carousel
中以响应式 属性 初始化import OwlCarousel from 'react-owl-carousel';
import $ from 'jquery';
import 'owl.carousel/dist/assets/owl.carousel.css';
import 'owl.carousel/dist/assets/owl.theme.default.css';
class Slider extends Component {
state= {
responsive:{
0: {
items: 1,
},
450: {
items: 2,
},
600: {
items: 3,
},
1000: {
items: 4,
},
},
}
render() {
return (<OwlCarousel className={'owl-theme'}
loop={true}
margin={10}
nav={true}
dots={false}
autoplay={true}
autoplayTimeout={2000}
items={4}
responsive={this.state.responsive} >
<div className={'item'}>
Item 1
</div>
<div className={'item'}>
Item 2
</div>
<div className={'item'}>
Item 3
</div>
<div className={'item'}>
Item 4
</div>
<div className={'item'}>
Item 5
</div>
</OwlCarousel>
你可以关注 -
import OwlCarousel from 'react-owl-carousel';
import 'owl.carousel/dist/assets/owl.carousel.css';
const options = {
margin: 30,
responsiveClass: true,
nav: true,
dots: false,
autoplay: false,
navText: ["Prev", "Next"],
smartSpeed: 1000,
responsive: {
0: {
items: 1,
},
400: {
items: 1,
},
600: {
items: 2,
},
700: {
items: 3,
},
1000: {
items: 5,
}
},
};
class Slider extends Component {
render() {
return (
<div>
<OwlCarousel className="slider-items owl-carousel" {...options}>
...
</OwlCarousel>
</div>
);
}
}
export default Slider;