部分覆盖屏幕并滑动覆盖元件

时间:2014-10-16 05:14:19

标签: jquery css css3

我尝试创建一个覆盖整个屏幕的overlay-div - 除了3em到底部。我认为我的尝试不是最佳选择:

<div id="background"></div>
<div id="overlay"></div>

CSS:

#background {
    background-color: #ddd;
    width: 100%;
    height: 100%;
}

#overlay {
    position: absolute;
    height: 100%;
    background-color: #fff;
    width: 100%;
    top: -3em;
    -webkit-box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.3);
    -moz-box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.3);
    box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.3);
    z-index: 1;
}

有了这个,我想在叠加层上下滑动。但是使用上面的CSS,我不知道如何完全动画,因为'-55em'在较低的屏幕分辨率上太多或者在较高的分辨率上不够:

JS:

$('#overlay').animate({'top':'-55em'}, 1000, function() {
    $('#overlay').animate({'top':'-3em'}, 1000);
});

1 个答案:

答案 0 :(得分:1)

我认为您应该更改高度而不是顶部,这样可以节省您的典型计算

&#13;
&#13;
$('#overlay').animate({'height':'0%'}, 1000, function() {
	$('#overlay').animate({'height':'100%'}, 1000);
});
&#13;
	#background {
		background-color: #ddd;
		width: 100%;
		height: 100%;
	}

	#overlay {
		position: absolute;
		height: 100%;
		background-color: #fff;
		width: 100%;
		top: -3em;
		-webkit-box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.3);
		-moz-box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.3);
		box-shadow: 0px 3px 5px 0px rgba(0,0,0,0.3);
		z-index: 1;
	}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="background"></div>
	<div id="overlay"></div>
&#13;
&#13;
&#13;