【问题标题】:calculate responsive width of element to define size计算元素的响应宽度以定义大小
【发布时间】:2019-02-21 15:41:02
【问题描述】:

我有一个使用 react-slick 的轮播,我希望主幻灯片与另一个组件具有相同的宽度并具有响应性。

我试着这样计算:

   const width = (window.innerWidth - document.getElementById('element').offsetWidth)/2;

在我的渲染方法中,我有:

        const settings = {
          className: "center",
          centerMode: true,
          arrows: true,
          infinite: true,
          centerPadding: "220px",
          slidesToShow: 1,
          speed: 500,
          responsive: [
            {
              breakpoint: 1441,
              settings: {
                centerPadding: `${width}px`,
              }
            },
            }
          ]
        };

最后在我的回归

<Row style={{ margin: '150px 0px'}}>
        <Slider {...settings}>
          <img  alt="" src={destination.photo.url}
            onLoad={this.handleImageLoaded} />
          <img alt="" src={destination.photo.url}
            onLoad={this.handleImageLoaded} />

          <img alt="" src={destination.photo.url}
            onLoad={this.handleImageLoaded} />
          <img alt="" src={destination.photo.url}
            onLoad={this.handleImageLoaded} />
        </Slider>
    </Row>

但是我遇到了这个错误:

我已经在控制台中进行了计算,一切正常,所以不确定这是从哪里来的

【问题讨论】:

    标签: javascript reactjs react-slick


    【解决方案1】:

    错误是由于此处有一个额外的“s”:document.getElementsById。

    由于ID是唯一的,正确的方法是document.getElementById。

    【讨论】:

    • 谢谢你!这是我的一个愚蠢的错误。但它仍然不起作用,因为centerPadding 似乎只接受一个字符串,它不适用于数字,所以我的组件没有显示
    • 当我尝试这样计算时:const width = window.innerWidth - document.getElementById('element').offsetWidth;我有一个错误cannot read property 'offsetWidth' of null
    猜你喜欢
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多