javascript - 如何在 Javascript 中修改计算的字体大小

标签 javascript jquery css dom

我正在尝试更改文本的字体大小,以使其适合动态 div 的尺寸。

我找到了一些符合要求的 jquery 代码,但是我不能在我的代码中使用 jquery,需要将它转换成 vanilla javascript。

当我运行转换后的代码时,我收到此错误: “未捕获的 DOMException:无法在“CSSStyleDeclaration”上设置“字体大小”属性:已计算这些样式,因此“字体大小”属性是只读的。”

这是我需要转换的原始 jQuery 代码:

elements = $('.resize')
el = elements[_i]

和:

resizeText = function () {
    var elNewFontSize
    elNewFontSize = (parseInt($(el).css('font-size').slice(0, -2)) - 1) + 'px'
    return $(el).css('font-size', elNewFontSize)
  }

这是我的转换:

elements = document.getElementsByClassName('resize')
el = elements[_i]

和:

resizeText = function () {
    var elNewFontSize
    elNewFontSize = (parseInt(window.getComputedStyle(el).fontSize.slice(0, -2)) - 1) + 'px'
    window.getComputedStyle(el).fontSize = elNewFontSize
    return elNewFontSize
  }

我做错了什么?

最佳答案

您需要将新大小设置为元素的 style.fontSize 属性,而不是从 window.getComputedStyle() 获得的计算值,例如

el.style.fontSize = elNewFontSize;

--

顺便说一句,没有直接关系,没有理由两次使用变量名,您可以使用声明对其进行初始化,即代替:

var elNewFontSize
elNewFontSize = ...

简单写

var elNewFontSize = ...

关于javascript - 如何在 Javascript 中修改计算的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54914688/

相关文章:

javascript - 区分失败(无网络)和 ajax 错误(HTTP 状态代码 0)中的已取消请求

javascript - JQuery 事件绑定(bind)

javascript - Promise 立即处理 .catch 和 .then

javascript - 如何单击一个 html 页面中的 div 并让它在另一个 html 页面中创建一个 div?

jquery - 同时使用表单提交和重定向

javascript - 如何安排youtube iframe的比例高度

html - 将滚动条定位在屏幕底部,并对齐列

html - 为什么我的图像没有粘在一起?

javascript - Node JS http-proxy - 创建 URL 的问题

php - 我来自 menu.ctp 的 img 链接在 view.ctp 和 login.ctp 中消失了