问题标签 [getcomputedstyle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
144 浏览

javascript - Ajax 回调中的 GetComputedStyle

我正在使用 jQuery 调用 ajax 请求,返回数据包含所有 html 元素。我想操纵与响应相关的样式。我已经尝试过 DOMParser ,它返回了节点,似乎它丢弃了与之关联的样式。我打算用

在元素上,但它总是返回 Null。有什么方法可以操纵 ajax 响应中的样式?我想获取 ajax 返回的数据的计算样式,或者想知道它是否可能?谢谢

0 投票
1 回答
193 浏览

javascript - 如何将文档 CSS 属性应用于 Parsed 元素而不将其附加到 DOM

执行此操作的常用方法是将新元素附加到正文,然后获取计算的 css 值,如下 jQuery 脚本中所示:

问题是如何在不将其附加到 DOM 的情况下执行此操作以避免缓慢的重新渲染,此脚本在不将其附加到 DOM 的情况下执行此操作:

这就是它得到的: Chrome 控制台结果

0 投票
7 回答
127286 浏览

javascript - JS:无法在“窗口”上执行“getComputedStyle”:参数不是“元素”类型

简而言之:我试图理解这个 TypeError 的含义:无法在 'Window' 上执行 'getComputedStyle':参数 1 不是类型 'Element' 午餐 Mediawiki 的可视化编辑器时出现错误,如下所示:

http://www.wiki.org.il/index.php?title=new-page&veaction=edit

该错误无法创建新页面或匿名编辑 wiki。但是,随着使用不同的皮肤,错误消失了:

http://www.wiki.org.il/index.php/Main_Page?useskin=vector

wiki 在 1.25alpha 上运行。

0 投票
1 回答
3906 浏览

javascript - 将 getComputedStyle 与 jsdom 一起使用

我无法使用 jsdom 获得颜色的计算样式值:

前面的测试返回 "" 而不是 "rgb(255, 0, 0)" 或 "red" ...
(请注意,这在浏览器中可以正常工作)

我错过了什么吗?

0 投票
2 回答
50 浏览

javascript - 如何正确更新对象?

我有一个对象生成器。它工作正常。

但后来我正在更新元素的属性

并且console.log(d.left)是错误的。我已经找到了修复它的方法,但它有点脏,我认为:

还有另一种方式(我更喜欢一条线)?不幸的是,我不擅长英语,如果有问题,标题有错误,请编辑它们。

0 投票
1 回答
922 浏览

javascript - 计算样式更改是否触发了任何事件?

我可以在 JavaScript 中监听一个事件,告诉我特定 DOM 元素的计算样式发生了变化吗?

如果不是,那么使用 JavaScript 获取 DOM 元素的计算样式的阻塞最少的方法是什么?

0 投票
0 回答
236 浏览

javascript - HTML DOM 重排和重绘 CSS 声明的属性函数

我正在编写一个函数,这样我就可以创建一个更好的 CSS 函数,而不是每次设置大量 css 时都重新绘制和重排(我知道使用类这只是一个测试用例),所以我想出了最好的办法首先是通过内联、嵌入或外部获取声明的 CSS 样式。于是这个explicit_set_styles功能就诞生了。然而问题是我仍在通过附加子元素来创建重绘。这就是它的工作原理

  1. 获取我们想要获得声明的css属性的元素的计算样式
  2. 创建相同类型的元素并从该计算样式中获取“默认值”
  3. 对其进行迭代并检查是否存在差异,那么很可能意味着它是 CSS 声明中的更改。
  4. 从 DOM 中移除用于测试的 type 元素

因此,通过附加一个新的 DOM 元素,我们重新绘制了 DOM,但这是我们测试默认值的唯一方法,因为不附加它,所有计算的样式都是 100% 空白的。那么有人有解决方案来获取比较值的默认值吗?

所以我在想可能有两种方法吗?通过创建一个 iframe 而不是附加它,而是将测试元素附加到它并获取它的默认值,但如果我是正确的,那不会仍然占用浏览器不必要的 CPU 吗?我已经测试过了,我的返回值看起来像这样

这是内联、嵌入式和外部 CSS 实际声明的内容

0 投票
0 回答
237 浏览

javascript - JavaScript mouseover/mousemove 光标位置而不点击输入文本框

我正在尝试结合 JavaScript 机制,通过 mouseover 和 mousemove 侦听器将用户光标自动放置在输入框内。

我在这里有一个几乎完美的工作示例:http: //codepen.io/anon/pen/doxNLm ?editors=101

我遇到的问题就像地球同步轨道;光标有时会偏离几个像素(左或右)。我的计算可能很糟糕,但我不确定帆布真的是最好的测量方法吗?有没有更好的办法?

  1. mousemove 侦听器从 e.pageX 接收元素光标坐标
  2. 使用 window.getComputedStyles(input_element) 的字体样式
  3. arr.split('') 来自 input_element.text 字符串:x = ['a','b','c']
  4. 'for循环'数组,生成画布并测量每个字符的宽度
  5. 将所有字符宽度一一相加,直到值大于 e.pageX
  6. 将“for循环”迭代设置为 setSelectionRange(i, i)

任何有关使其更好的帮助或建议将不胜感激。谢谢!

0 投票
1 回答
7573 浏览

javascript - window.getComputedStyle 不适用于除 Chrome 之外的其他浏览器中的速记属性

window.getComputedStyle 在 Chrome 中给出了样式的值,但在 Firefox 和 Microsoft Edge 中它给出了一个空字符串,在 Internet Explorer 中,它说它不支持该方法。这是我的代码。

每当单击 Upvote 图像时,它都会触发该upDownVote()函数,并传递两个参数。这是 HTML。

我通过 ajax 将三个变量传递给我的 php 脚本;ID,类型,适用。类型可以存储一个值,增量或减量。

我想要,甚至点击投票按钮。投票值加 1,按钮背景发生变化。按钮 downvote 也是如此,但这里的投票价值减少了。type我用变量处理这个。

当再次点击upvote(或用户双击)时,投票值必须减少而不是增加。我使用 if 条件内的嵌套 if 条件(当类型为增量时)处理此问题。在那种情况下,我检查了是否applicable大于一。如果是,我将其更改type为递减并适用于 0,以及其原始图像的背景。

但是,如果当用户在单击 downvote 按钮后单击 upvote 按钮时会怎样。在那个条件下applicable值大于 1。然后必须更改type为减量。那不应该发生。为此,在我的嵌套 if 条件中,我还添加了检查 downvote 按钮的背景。页面加载时必须与之前相同。

当适用值大于 1 时(当用户在点击 downvote 之前点击 upvote)。在我的 php 脚本中,我将投票值增加了 2。

否决按钮的逻辑相同。

这是JavaScript。

的 CSSupvotedownvote.

一切正常,但现在我被卡住了。如何获取按钮的背景值,因为window.getComputedStyle所有浏览器都不能正常工作。我想知道是否有任何其他属性可以让我拥有背景属性。

另外,我想知道如何用不同的逻辑做同样的事情。如果我无法为window.getComputedStyle.

0 投票
1 回答
2192 浏览

javascript - getComputedStyle 属性值

我正在尝试报告我创建的椭圆形 div 的边框半径的值,但我得到了一个未定义的返回值。谁能解释为什么?我犯了一个简单的错误还是我的代码有问题?谢谢!

编辑:我尝试了“border-bottom-left-radius”和“borderBottomLeftRadius”,结果相同。我应该使用哪一个?