0

使用 html:

<a class="jslider-pointer" href="#" style="left: 50%;"></a>

我使用 jquery api css() 来获取 left 属性的值:

$('.jslider-pointer').first().css('left')

它在 chrome 中运行良好,返回 50%。但它在 Firefox 中不起作用。它在 Firefox 中返回 150px。

有谁知道它为什么会发生,我怎样才能在 Firefox(一种跨不同浏览器工作的方法)中获得正确的价值?

谢谢

4

2 回答 2

1

返回 px 值

$('.jslider-pointer').offset().left

其他方式你可以自己计算

parseInt($('.jslider-pointer').css('left')) / $('.jslider-pointer').parent().width() * 100;

有一个很好的插件可以解决跨浏览器问题 jQuery 维度

于 2012-09-22T21:00:47.560 回答
0

根据this other post Retrieving percent CSS values (in firefox)这是一个已知的错误。基于该帖子答案中的小提琴,我制作了一个 jQuery 插件,它应该可以解决您的问题:

(function($) {
    $.fn.cssFix = function(property) {
        var el = this[0], value;

        if (el.currentStyle)
            value = el.currentStyle[property];
        else if (window.getComputedStyle)
            value = document.defaultView.getComputedStyle(el,null).getPropertyValue(property);

        return value;
    }
})(jQuery);

用法:

$('.jslider-pointer').first().cssFix('left');

这是一个使用这个插件并在 Chrome 和 Firefox 上工作的小提琴,并返回在 css 规则中定义的值:要么%px

编辑:在 Internet Explorer 中测试,它也可以在那里工作

于 2012-09-22T21:39:54.900 回答