【问题标题】:Check if opacity is set检查是否设置了不透明度
【发布时间】:2012-04-29 22:49:53
【问题描述】:

我有一个动画不透明度的脚本,但如果之前没有设置不透明度,那么它就会消失。我只是想知道是否有办法检查是否已设置不透明度。提前致谢!

【问题讨论】:

  • 你可能需要展示一些代码
  • 我只需要知道如何检查 element.style.opacity 之前是否已通过 CSS 设置。当然,在什么上下文中使用它并不重要?

标签: javascript css opacity


【解决方案1】:

通常,未设置的 CSS 属性在 JavaScript 中返回空值。

更新:看来element.style 只会返回之前通过JavaScript 设置的值 在内联样式中指定。要获取 CSS 属性的真实值,您需要使用元素的所谓“计算样式”。

这是一个执行此操作的函数(从 quirksmode 复制):

function getStyle(el,styleProp)
{
    var x = document.getElementById(el);
    if (x.currentStyle)
        var y = x.currentStyle[styleProp];
    else if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
    return y;
}

但是,如果未设置不透明度,这将返回1.0(默认值),因此实际上无法知道不透明度是否真的在 CSS 中定义。

【讨论】:

  • 我认为你最好使用 isNaN(element.style.opacity)。
  • @Christopher W. Allen-Poole:如果是 0.0 怎么办?
  • 不行,检查它是否为空字符串并通过isNaN函数运行它仍然返回0。
  • @Christopher W. Allen-Poole:考虑到值只能为空或数字,我认为没有什么不同。 @Robusto:0.0 仍然被认为是一个数字。
  • @Wolfy87:你有什么问题?这对我来说似乎工作得很好。它假定el 是一个元素的ID,所以你可以称它为getStyle('some_id', 'opacity')
猜你喜欢
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
  • 2012-03-10
相关资源
最近更新 更多