Flo*_*uck 5 html css anchor jquery margin
我有一个"大"的问题,不知道如何解决.
如果我有一个锚点链接跳转到具有margin-top的元素,则边距被"忽略",如下例所示:
如果我有一个带有margin-top ="0"的div并且会动态添加一些margin-top,则锚点会跳转到"旧"位置,如下例所示:
是否有可能告诉锚点目标元素上存在动态变化的边距?
以下是单个代码段:
HTML
<a href="#testanchor" class="link">Testanchor</a>
<div id="zwischenelement"></div>
<div id="testanchor">Hier muss der Anker hinspringen</div>?
Run Code Online (Sandbox Code Playgroud)
CSS
body {
height: 8000px;
}
.link {
display: block;
}
#zwischenelement {
height: 200px;
background-color: grey;
}
#testanchor {
margin-top: 40px;
background-color: red;
padding:15px;
}?
Run Code Online (Sandbox Code Playgroud)
JS(包含"scrollAnimate"jQuery插件)
$(document).ready(function() {
$('#testanchor').scrollAnimate({
startScroll: 0,
endScroll: 100,
cssProperty: 'margin-top',
before: 0,
after: 40
});
});
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
一种解决方案是用 jQuery 函数替换正常的链接单击操作,该函数滚动到元素的当前位置,加上您期望其向下移动的像素数:
$('a[href^=#]').on('click',function(e) {
e.preventDefault();
$(document).scrollTop($('#testanchor').position().top+40);
// 40 pixels is specific to this case
});
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/mblase75/eG2Gd/2/