0

「#rightPanelscrl」の最後の部分が見えたら、その位置を修正したいと思います。私は以下のコードを使用していますが、FFでは正しく機能していますが、Chromeではまったく機能していません。

 var sidebarScrollTop = 0;

$(window).load(function () {
    sidebarScrollTop = $("#rightPanelscrl").offset();
    if ($("#rightPanelscrl").height() > 500) {
        alert($("#rightPanelscrl").height());
        $(window).scroll(function () {

            var docScrollTop = $('body,html').scrollTop();
            //  alert(docScrollTop);
            if (docScrollTop > 500) {
                $("#rightPanelscrl").css({ position: 'fixed', top: '-500px' });
            }
            else {
                $("#rightPanelscrl").css({ position: 'static' });
            }
        });
    }
    else if ($("#rightPanelscrl").height() < 500) {
        $("#rightPanelscrl").css({ position: 'fixed', top: '35px' });
    }

});

$(window).resize(function () {
    sidebarScrollTop = $("#rightPanelscrl").offset().top;
});

$(document).resize(function () {
    sidebarScrollTop = $("#rightPanelscrl").offset().top;
});
4

1 に答える 1

0

jQuery を使用して位置を変更するよりも、特定のスクロール ポイントに CSS クラスを追加してこれを行うことを好みます。それはコードをはるかに簡単にします!これをチェックしてください

基本的に、あなたはあなたの#rightPanelscrl

<ul id="rightPanelscrl">
    <li><a href="#">one</a></li>
    <li><a href="#">two</a></li>
    <li><a href="#">three</a></li>
    <li><a href="#">four</a></li>
    <li><a href="#">five</a></li>
</ul>​

あなたのCSS:

body {height: 2000px;}    
#rightPanelscrl {
    position:absolute; 
    top:140px; 
    z-index:4; 
    width:100%;  
}    
#rightPanelscrl.fixed {
    position:fixed; 
    top:0px;
}
​

そしてあなたのjQuery:

$(document).ready(function() {
    var theLoc = $('#rightPanelscrl').position().top;
    $(window).scroll(function() {
        if(theLoc >= $(window).scrollTop()) {
            if($('#rightPanelscrl').hasClass('fixed')) {
                $('#rightPanelscrl').removeClass('fixed');
            }
        } else { 
            if(!$('#rightPanelscrl').hasClass('fixed')) {
                $('#rightPanelscrl').addClass('fixed');
            }
        }
    });
});
于 2012-09-18T14:44:27.750 に答える