如何在jQuery中使用滚动条移动div

如何在jQuery中使用滚动条移动div,jquery,Jquery,我有一个像这样的影像部门 <div class="bgCover">&nbsp;</div> <div class="overlayBox" style="position: fixed; background-image: url(../images/header.jpg)" > <div class="overlayContent"> <a href="javascript:void()" class

我有一个像这样的影像部门

<div class="bgCover">&nbsp;</div>
<div class="overlayBox" style="position: fixed; background-image: url(../images/header.jpg)"  >

    <div class="overlayContent">

        <a href="javascript:void()" class="closeLink">Close</a>

    </div>

</div>
function getScrollTop() {

    if (typeof window.pageYOffset !== 'undefined' ) {
        // Most browsers
        return window.pageYOffset;
    }

    var d = document.documentElement; //IE with doctype

    if (d.clientHeight) {
        // IE in standards mode
        return d.scrollTop;
    }

    // IE in quirks mode
    return document.body.scrollTop;

} //end of getScrollTop()

function doOverlayOpen() {
    ...
    showOverlayBox();
}

function showOverlayBox() {

    var scroll = getScrollTop();
    var top;

    if (scroll <= 28) {
        top = "30";
    }
    else {         
      top = (scroll + 2) ;
    }

    // set the properties of the overlay box, the left and top positions
    $('.overlayBox').css({

        display:'block',
        position:'absolute',
        left:( $(window).width() - $('.overlayBox').width() )/2,          
        top:top

    });

    // set the window background for the overlay. i.e the body becomes darker
    $('.bgCover').css({

        display:'block',
        width: $(window).width(),
        height:$(window).height()

    });
}

我正在使用jQuery像这样打开这个框

<div class="bgCover">&nbsp;</div>
<div class="overlayBox" style="position: fixed; background-image: url(../images/header.jpg)"  >

    <div class="overlayContent">

        <a href="javascript:void()" class="closeLink">Close</a>

    </div>

</div>
function getScrollTop() {

    if (typeof window.pageYOffset !== 'undefined' ) {
        // Most browsers
        return window.pageYOffset;
    }

    var d = document.documentElement; //IE with doctype

    if (d.clientHeight) {
        // IE in standards mode
        return d.scrollTop;
    }

    // IE in quirks mode
    return document.body.scrollTop;

} //end of getScrollTop()

function doOverlayOpen() {
    ...
    showOverlayBox();
}

function showOverlayBox() {

    var scroll = getScrollTop();
    var top;

    if (scroll <= 28) {
        top = "30";
    }
    else {         
      top = (scroll + 2) ;
    }

    // set the properties of the overlay box, the left and top positions
    $('.overlayBox').css({

        display:'block',
        position:'absolute',
        left:( $(window).width() - $('.overlayBox').width() )/2,          
        top:top

    });

    // set the window background for the overlay. i.e the body becomes darker
    $('.bgCover').css({

        display:'block',
        width: $(window).width(),
        height:$(window).height()

    });
}
函数getScrollTop(){ if(typeof window.pageYOffset!==“未定义”){ //大多数浏览器 返回窗口.pageYOffset; } var d=document.documentElement;//具有doctype的IE 如果(d.clientHeight){ //标准模式下的IE 返回d.scrollTop; } //怪癖模式 返回document.body.scrollTop; }//getScrollTop()的结尾 函数doOverlayPen(){ ... showOverlayBox(); } 函数showOverlyBox(){ var scroll=getScrollTop(); var-top;
如果(滚动非常简单:改用
位置:fixed
。因此将其更改为

function showOverlayBox() {

    var top;


    top = "30px";

    // set the properties of the overlay box, the left and top positions
    $('.overlayBox').css({

        display:'block',
        position:'fixed',
        left:( $(window).width() - $('.overlayBox').width() )/2,          
        top:top

    });

    // set the window background for the overlay. i.e the body becomes darker
    $('.bgCover').css({

        display:'block',
        width: $(window).width(),
        height:$(window).height()

    });
}

您不再需要的其他功能(getScrollTop和DooverLayOccess)

尝试使用
Position:fixed
,然后您可以使用滚动条移动div背景的内容


这是给你的。

我试过这个
$('.overlybox').css({display:'block',//position:'absolute',position:'fixed',left:($(window).width()-$('.overlybox').width())/2,top:top};
但是现在overlybox没有显示:(啊,好的,你必须改变左上角的大小等等。因为它是固定的,所以它必须是例如:顶部:10px;左侧:20px;右侧:20px;底部:10px;否则它将是固定的,但屏幕下有许多像素我在等待你的答复。非常感谢你,但你说**因为它是固定的,所以它必须是例如顶部:10px;左侧:20px;钻机ht:20px;底部:10px;否则它将是固定的,但屏幕下有许多像素**。你说屏幕下有许多像素是什么意思?当我使用getScrollTop()时若要获得顶部位置,则它不起作用,但使用您的代码,它起作用了…为什么?您能向我解释一下吗?如果位置设置为固定,则所有定位值都与浏览器窗口相关。因此,这并不取决于您向下滚动的距离或其他内容。如果顶部设置为20px,则表示它位于浏览器下方20px地址栏或浏览器窗口顶部。固定是相对于浏览器窗口的,绝对是相对于整个页面的。请阅读以下内容: