在我的HTML页面上,我希望能够"转到"/"滚动到"/"关注"页面上的元素.
通常情况下,我会使用带有a的锚标记href="#something",但我已经使用hashchange事件和BBQ插件来加载此页面.
那么有没有其他方法,通过JavaScript,让页面转到页面上的给定元素?
这是我正在尝试做的基本概述:
function focusOnElement(element_id) {
$('#div_' + element_id).goTo(); // need to 'go to' this element
}
<div id="div_element1">
yadda yadda
</div>
<div id="div_element2">
blah blah
</div>
<span onclick="focusOnElement('element1');">Click here to go to element 1</span>
<span onclick="focusOnElement('element2');">Click here to go to element 2</span>
Run Code Online (Sandbox Code Playgroud) 我在我的网站顶部使用静态条,大约20px高.当我点击一个锚点链接时(对于那些不知道的人来说,维基百科上的导航就是这样的.点击一个标题,然后浏览器就会显示它).文本的一部分消失在顶部栏后面.
有没有办法阻止这种情况发生?我不能使用iFrame.我能想到的只是让它每次都回滚一下,但还有另外一种方法吗?一些CSS设置来操纵身体或什么?
所讨论的代码使页面滚动动画到页面上的特定点。如标题所示,我希望Google Closure等效于以下jQuery:
$('html,body')。animate({scrollTop:800});
它在此处表示html, body允许浏览器不一致,这$(document)是等效的。
我尝试了以下方法:
var anim = new goog.fx.dom.Scroll(document, [0, 0], [0, 800], 400);
anim.play();
Run Code Online (Sandbox Code Playgroud)
我也尝试过document.body。
网络上没有演示程序,信息令人沮丧goog.fx.dom.Scroll。