0

HTMLで:

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

jquery api css()を使用して、leftプロパティの値を取得しました。

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

それは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

この他の投稿によると、CSS値のパーセンテージを取得する(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 に答える