如何在jQuery中使用滚动条移动div
我有一个像这样的影像部门如何在jQuery中使用滚动条移动div,jquery,Jquery,我有一个像这样的影像部门 <div class="bgCover"> </div> <div class="overlayBox" style="position: fixed; background-image: url(../images/header.jpg)" > <div class="overlayContent"> <a href="javascript:void()" class
<div class="bgCover"> </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"> </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地址栏或浏览器窗口顶部。固定是相对于浏览器窗口的,绝对是相对于整个页面的。请阅读以下内容: