繁体   English   中英

响应式轮播 React material-ui

[英]Responsive Carousel React material-ui

我正在尝试使用 React material-ui 构建一个音乐旅游网站。 我希望网站看起来像这样: https://www.oddfantastic.com/

我是 React 的新手,在查看了 bootstrap 和 material-ui 等库后,我决定坚持使用 material-ui。 现在我被困在带有滑动图像的第一页上。 我尝试了不同的方法来获得上述网站首页的结果,但直到现在都没有运气。 我开始使用网格和卡片,现在我正在尝试网格列表。 这是我的代码:

import Slide from '@material-ui/core/Slide';
import React, { Component } from 'react'
import { Grid, Card, CardContent, CardMedia, Typography } from '@material-ui/core';
import GridList from '@material-ui/core/GridList';
import GridListTile from '@material-ui/core/GridListTile';
import { Carousel, CarouselSlide } from 'material-ui-carousel'

export default class App extends Component {
pictures = [
    {imagel: './images/radio7-2-1.png', imager: './images/radio7-2-2.png', title: 'r7-2'},
    {imagel: './images/radio7-3-1.png', imager: './images/radio7-3-2.png', title: 'r7-3'},
    {imagel: './images/masterphil-1.png', imager: './images/masterphil-2.png', title: 'mp'},
    {imagel: './images/vito-1.png', imager: './images/vito-2.png', title: 'vito'},
  ];

render () {
    return (
// <Grid container justify="center" spacing={0}>
  /* {[0, 1].map(value => (
    <Grid key={value} item> */
      <Carousel>
        {this.pictures.map(({ imagel, imager, title }) => (
        <CarouselSlide key={title}>
           <GridList cellHeight={160} cols={2}>
             <GridListTile key={title} style={{ height: 'auto' }}>
               <img src={imagel} alt={title} />
             </GridListTile>
           </GridList>
          {/* <Card width="100%" key={title}>
            <CardMedia
              image={imagel}
              title={title}
              style={{
              height: 0,
              width: '50%',
              paddingTop: '75%',
              }}
            />
            <CardMedia
              image={imager}
              title={title}
              style={{
              height: 0,
              width: '50%',
              paddingTop: '75%',
              }}
            />
            <CardContent>
              <Typography>{title}</Typography>
            </CardContent>
          </Card> */}
        </CarouselSlide>
        ))}
      </Carousel>

    /* </Grid>
  ))}
</Grid> */

)
}
}

这是获得的结果: 在此处输入图像描述

看起来所有图像同时出现。

由于我的知识真的很有限,我想知道我是否选择了正确的图书馆。 特别是我找不到可以实现我想要的 material-ui 组件。

任何建议或方向都会很棒。 谢谢

我认为您正在寻找这个package ,它是一个使用 Material-UI 的可扩展轮播 UI 组件。 快乐编码!

顺便说一句,Material UI 没有原生 Carousel 组件,我发现 Material UI 定制对于初学者来说非常具有挑战性。 最近尝试了很多轮播库后,我发现 ant 设计有最好的即用型轮播 该库由阿里巴巴集团开发和维护,因此您可以比一些小型库更好地依赖它。

MUI 官方文档包含一个使用轮播效果的示例。

该示例可以在 这里找到

该演示使用react-swipeable-views创建轮播。

如果有人仍然堆在其中,只需使用此:

npm install react-material-ui-carousel --save
you should install also:
npm install @mui/material
npm install @mui/icons-material
npm install @mui/styles

import Carousel from 'react-material-ui-carousel';

            <Carousel>
                {
                    this.props.item.images.map( (image, i) => <img key={i} src={image} /> )
                }
            </Carousel>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM