从顶部的绝对DIV 300px的HTML锚点问题..?
我有一个带有标题位置的页面:固定顶部的DIV 。 这个DIV的高度是:300px,并且它是固定的,以便即使用户向下滚动时它也始终可见。
我的内容在下面的另一个DIV中。 它有一个位置:绝对顶部:300px 。 所以当你第一次加载页面时,它会从我的页眉下面开始,当你滚动时,它将滚动到我的页眉下方,页面保持固定在顶部。
在我的内容DIV中,我有多个主播。 当我点击指向其中一个锚点的链接时,页面会滚动,但会将锚点置于页面顶部。 所以基本上,应该显示的内容隐藏在我的标题下...
你有任何想法如何解决这个问题与HTML / CSS ..?
除了使用iframe或框架集之外,是否还有其他解决方案?
你可以用jQuery来做到这一点。
首先,你需要在你的<head>
包含jquery库。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
在上面你需要下面的JavaScript
<script type="text/javascript">
$(function(){
$('a[href*=#]').click(function() {
if (location.pathname.replace(/^//,'') == this.pathname.replace(/^//,'')
&& location.hostname == this.hostname) {
var $target = $(this.hash);
$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
if ($target.length) {
var targetOffset = $target.offset().top - 300;
$('html,body').animate({scrollTop: targetOffset}, 10);
return false;
}
}
});
});
</script>
以上脚本中的以下行控制顶部的偏移量或“边距”。
var targetOffset = $target.offset().top - 300;
您也可以通过增加此行上的值来使滚动平滑。
$('html,body').animate({scrollTop: targetOffset}, 10);
尝试用它替换它。
$('html,body').animate({scrollTop: targetOffset}, 1000);
填充和负边距应该适用于此。 以下是预览的示例页面:http://jsbin.com/ucili/edit
实质上,对于锚点,我有一个300px的顶部填充和-300px的页边距。 填充确保锚点不落在固定div下,负边距使得内容正确流动(没有巨大的空白空白)。
这个例子使用了padding- / margin-top技巧,但是通过CSS3伪类实现:target
:
/* assuming the header-height is 8em */
:target {
padding-top: 8em;
margin-top: -8em; }
链接地址: http://www.djcxy.com/p/62043.html
上一篇: Problem with HTML anchor in absolute DIV 300px from the top..?