计算元素的响应宽度以定义大小

Posted

技术标签:

【中文标题】计算元素的响应宽度以定义大小【英文标题】: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: `$widthpx`,
              
            ,
            
          ]
        ;

最后在我的回归

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

          <img  src=destination.photo.url
            onLoad=this.handleImageLoaded />
          <img  src=destination.photo.url
            onLoad=this.handleImageLoaded />
        </Slider>
    </Row>

但是我遇到了这个错误:

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢你!这是我的一个愚蠢的错误。但它仍然不起作用,因为centerPadding 似乎只接受一个字符串,它不适用于数字,所以我的组件没有显示 当我尝试这样计算时:const width = window.innerWidth - document.getElementById('element').offsetWidth;我有一个错误cannot read property 'offsetWidth' of null

以上是关于计算元素的响应宽度以定义大小的主要内容,如果未能解决你的问题,请参考以下文章

移动端适配

margin/padding百分比值的计算

REM方案总结

计算用于调整大小的图像大小比率

不同尺寸的流体宽度元素的正确纵横比

position