如何在调整大小时重新计算窗口容器/图像宽度?

时间:2018-10-09 10:57:11

标签: javascript reactjs

我在React中有一个方法/函数,其中单击时使用CSS的转换值左右滑动。但是,在渲染时将加载屏幕,屏幕将向左或向右移动,并且转换值将正确设置。但是问题是,当我尝试调整浏览器的大小时,计算不起作用。

我尝试创建一个onClick = {this.ResizeSlider},然后从那里运行该功能,但是不起作用。

我的代码:

    def pyramid(height):
        for row in range(height):
            for count in range(height - row):
                print(end=" ")
            for count in range(2 * row + 1):
                print(end="*")
            print()

    def square(width):
        if height % 2 == 0:
         space=int((height/2))*' '
        else:
         space=int((height/2)+1)*' '
        for i in range(width):
            print(end=space)
            for j in range(width):
                print('*', end='')
            print()


    height = int(input("Enter height of the branches: "))


    width = int(input("Enter width of the stem: "))
    pyramid(height)
    square(width)

1 个答案:

答案 0 :(得分:0)

您需要添加一个eventListener,以便知道屏幕大小何时更改。

尝试这样的事情:

componentDidMount() {
  this.dimensionsChange();
  window.addEventListener("resize", this.dimensionsChange());
}

您可以使用以下方法在DimensionsChange()方法中访问宽度/高度值:

var w = window.innerWidth;
var h = window.innerHeight;

在卸载组件时,请不要忘记删除事件侦听器:

componentWillUnmount() {
  window.removeEventListener("resize", this.dimensionsChange());
}