以下是我对您的情况的解释:http: //jsfiddle.net/5TXvF/
为了设置盒子,我使用了你让盒子向左偏移的想法:
<a href="#" class="flying-activate">Fly It Out</a>
<div id="flying-box">
<!-- Content or iFrame -->
<iframe src="http://www.google.ca" />
</div>
在这种情况下,您不一定需要使用 iframe,即 CSS:
html,
body {
height: 100%;
}
#flying-box {
background: blue;
height: 100%;
left: -50%;
position: fixed;
top: 0;
width: 50%;
z-index: 100;
}
#flying-box iframe {
height: 100%;
width: 100%;
}
我从您的描述中假设您想要覆盖页面的一半,因此定义 HTML 和 BODY 的高度很重要:100%,这样您的 DIV 也可以扩展到页面的高度。
与之相伴的 jQuery 是这样的:
$(document).ready(function() {
var flying_on = false;
$('a.flying-activate').click(function(e) {
$('#flying-box').animate({left: 0}, 1000, function() {
flying_on = true;
});
e.preventDefault();
e.stopPropagation();
});
$('body').click(function(e) {
if (e.target.id != 'flying-box') {
$('#flying-box').animate({left: '-50%'}, 1000, function() {
flying_on = false;
});
}
});
});
fly_on 变量用于跟踪该状态。第一个功能是在 1 秒内激活 DIV 滑入。要让 DIV 关闭单击我正在监听的其他任何地方单击身体,只要用户单击的 ID 不是飞行框所在的位置,它就会关闭。