【问题标题】:Javascript Resize ElementJavascript 调整元素大小
【发布时间】:2020-01-27 23:38:13
【问题描述】:

我有一个猫头鹰轮播,它会自动加载由屏幕大小和项目决定的宽度。 div .owl-stage 在页面加载时设置了宽度,并在调整浏览器大小时调整大小。 我得到了 .owl-stage 元素的宽度并将其应用于元素 .block 标题,效果很好。

$(document).ready(function() {
  $(".block-title").css({
    'width': ($(".owl-stage").width() + 'px')
  });
});

问题是 .owl-carousel 宽度发生变化,但 .block-title 保持设置为页面加载时设置的初始宽度。需要在函数中添加什么,以便 .block-title 宽度随着 .owl-stage 宽度的变化而保持更新?

【问题讨论】:

    标签: javascript jquery width


    【解决方案1】:

    您可能必须更改 .block-title 类的 font-size 才能“调整”它的大小:

    let fontSize = .9;
    $(document).ready(function() {
      $(".block-title").css({
        'font-size': (`${fontSize}vw`)
      });
    });
    

    fontSize 变量调整为小数,使其看起来正确。然后它应该扩展到不同的浏览器宽度。请注意,我使用vw 作为字体大小的单位。例如,1vw 将是视口宽度的 1% 的像素字体大小。因此,在调整浏览器大小时,字体大小将根据视口宽度进行调整。

    【讨论】:

    • 我想要做的是保持它与元素 .owl-stage 相同的大小,因为它已调整大小。它成功地获得了初始宽度,但随后 .owl-stage 缩小并且 .block-title 没有。
    • 仍然,尝试更改小数点(上图),直到大小看起来正确。然后调整浏览器的大小,看看它是否在不同的维度上保持正确。如果owl-stage 的宽度与视口宽度成正比,那么将.block-title 的字体大小基于视口宽度的小数点应该可以;只需修改fontSize 的十进制值,直到它看起来正确。然后,它应该缩放(在不同的浏览器尺寸下保持这些比例)。
    • 如果您特别调整.owl-stage 的大小,独立于整个浏览器,那么您必须在每次调整大小后将.block-title 的字体大小基于owl-stage 的宽度owl-stage.
    • 看看一些答案here
    • .owl-stage 的宽度由它最初包含的列表项的数量定义,因此无法通过浏览器窗口准确计算。 .owl-stage 确实会随着窗口缩小而调整大小,但宽度最初是根据项目编号而不是分辨率设置的。