2

簡単なスライダーを書いたところです。しかし、何か奇妙なことがあり、私はそれを修正することができませんでした。スクリプトはFirefox(12)で動作し、;では動作しません。 クローム(23.0.1271.64 m)、オペラ(12.02)、つまり(7-8-9-D)、サファリ(5.1.7)。

以下のコードがあります。誰かが私にそれを修正する方法を教えてもらえますか?

jsfiddleコード。

$.fn.etkinlikslide = function() {
    var etkinlikid        = this.selector.replace(/\#/g,'');
    var esheight    = parseInt($('#'+etkinlikid).height());
    var epheight    = parseInt($('#etkinlikpanel').height());
    function oynat(){
        var topcheck =parseInt($('#'+etkinlikid).css("top"))+parseInt($('#'+etkinlikid).height());
        if (topcheck<0) $('#'+etkinlikid).css("top",$('#etkinlikpanel').css("height"));
        $('#'+etkinlikid).css("top",parseInt($('#'+etkinlikid).css("top"))-1+'px');
    }
    if (esheight>epheight) {
        var etkinliktimer = window.setInterval(function() {oynat()}, 80);
        $('#'+etkinlikid).hover(function(){
            window.clearInterval(etkinliktimer);
        },function(){
            etkinliktimer = window.setInterval(function() {oynat()}, 80);
        });
    }
};
$("#etkinlikslide").etkinlikslide();
4

1 に答える 1

0

問題は、CSS プロパティ top のデフォルトが IE では auto に設定されているのに対し、Firefox では 0 に設定されていることです。

そのため、関数 var topcheck =parseInt($('#'+etkinlikid).css("top"))+parseInt($('#'+etkinlikid).height());は NaN を返すため失敗します。

上を追加: 0; あなたのCSSでdivにそれを解決します

フィドルリンク

于 2012-11-23T13:05:18.523 に答える