javascript - 每当元素 clientWidth 更改时,Vue 更新数据属性

标签 javascript html css vue.js sass

我目前正在将名为 w 的数据属性设置为我在 HTML 中拥有的元素的 clientWidth 值。在我安装的钩子(Hook)中看起来像这样:

data() {
 return {
  w: 0,
 };
},
mounted() {
  this.w = this.$refs.timelineProgress.clientWidth;
},

这对于初始设置 this.w 元素的 clientWidth 宽度效果很好,但我现在要做的是在 clientWidth 发生变化时更改 w 的值。这样我就可以获取元素的宽度,并在它根据设备屏幕尺寸缩小或增大时存储它,或者如果用户缩小页面或类似的东西。

非常感谢任何解决此问题的帮助。谢谢。

最佳答案

您或许可以尝试使用 createdunmounted方法将窗口调整大小事件附加到您的组件。

created() {
    window.addEventListener('resize', this.resizeHandler);
}
unmounted() {
    window.removeEventListener('resize', this.resizeHandler);
}
methods: {
    resizeHandler() {
        this.w = this.$refs.timelineProgress.clientWidth;
    }
}

resizeHandler 方法中,您还可以对状态更新进行去抖动以提高性能。

关于javascript - 每当元素 clientWidth 更改时,Vue 更新数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68409906/

相关文章:

javascript - 显示使用 google 图表 api 的图表

jquery - 如何垂直居中流动的左列和 float 的右列?

javascript - CSS 动画 - 显示和隐藏面板

javascript - 如何将 SVG 文本动画设置为 "written out"

html - 链接在滚动时改变颜色

PHP - 如何阻止函数打印额外的 ||在最后?

javascript - 如何开发Javascript和CSS并在发布时使用缩小版本?

javascript - UI View 未在 AngularJS 教程中呈现

html - 您可以在 schema.org 标记中使用纯文本作为地址吗?

html - 由表格单元格中的图像创建的异常间隙