在所有浏览器中,通过javascript以%form返回CSS属性的确切值

Return the exact value of a CSS property by javascript in % form across all browsers

本文关键字:属性 CSS 返回 %form 浏览器 javascript 通过      更新时间:2023-09-26

我正在尝试实现一个跨浏览器的if/else语句。问题是我正在检查一个元素的"top"属性,而Chrome&safari返回css值,而Opera&Firefox总是以像素为单位返回。有没有什么方法可以直接读取CSS,并使用jQuery或javascript在.CSS文件中输入的元素上返回'top'的值?

我需要一个以%为单位返回的统一值。问题是Firefox将其转换为像素。

这是我的代码:

if ($('#wrapper').position().top == '-100%') {
        // Do Stuff
}

这在chrome中有效,因为chrome在实例中返回-100%。但是firefox返回类似'-720px'的东西。它将该百分比转换为像素。

afaik,您无法返回%,但您可以通过将css返回的像素除以高度来计算。

var top = parseInt($('#ID').css('top')) / $('#ID').parent().height() * 100;

您无法获得在CSS文件中输入的内容,但您可以简单地对返回值进行一些解析。下面应该为您标准化这些值,然后您可以进行任何需要进行的比较(使用JQuery)。

parseInt($("#elementId").css("top").replace("px", ""))

您可以使用parseInt()方法从CSS属性返回一个数值。

var top = parseInt($("#someElement").css("top"));