我不确定询问/搜索此问题的最佳方法:
当您单击锚点链接时,它会将您带到页面的该部分,并且链接到的区域现在位于页面的非常顶部。我希望锚链接将我发送到页面的该部分,但我想在顶部留一些空间。在这种情况下,我不希望它将我发送到“链接到”的零件上,该零件在“非常重要”的位置上,我希望在那里有100个像素左右的空间。
这有意义吗?这可能吗?
编辑以显示代码-这只是一个锚标记:
<a href="#anchor">Click me!</a>
<p id="anchor">I should be 100px below where I currently am!</p>
window.addEventListener(“hashchange”, function () {
window.scrollTo(window.scrollX, window.scrollY - 100);
});
这将允许浏览器为我们完成跳转到锚点的工作,然后我们将使用该位置进行偏移。
编辑1:
正如@erb指出的那样,仅当您在页面上更改哈希值时,此方法才有效。输入#something
网址中已经存在的页面不适用于上述代码。这是处理该问题的另一个版本:
// The function actually applying the offset
function offsetAnchor() {
if(location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 100);
}
}
// This will capture hash changes while on the page
window.addEventListener("hashchange", offsetAnchor);
// This is here so that when you enter the page with a hash,
// it can provide the offset in that case too. Having a timeout
// seems necessary to allow the browser to jump to the anchor first.
window.setTimeout(offsetAnchor, 1); // The delay of 1 is arbitrary and may not always work right (although it did in my testing).
注意:要使用jQuery,您只需 在示例中将替换window.addEventListener
为$(window).on
。谢谢@Neon。
编辑2:
如少数人所指出的,如果您连续两次单击同一锚点链接,则以上操作将失败,因为没有hashchange
事件会强制偏移。
此解决方案是@Mave的建议的非常轻微的修改版本,并使用jQuery选择器进行简化
// The function actually applying the offset
function offsetAnchor() {
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 100);
}
}
// Captures click events of all <a> elements with href starting with #
$(document).on('click', 'a[href^="#"]', function(event) {
// Click events are captured before hashchanges. Timeout
// causes offsetAnchor to be called after the page jump.
window.setTimeout(function() {
offsetAnchor();
}, 0);
});
// Set the offset when entering page with hash present in the url
window.setTimeout(offsetAnchor, 0);
问题内容: 可以在Angularjs中使用锚链接吗? 即: 谢谢 问题答案: 看来有几种方法可以做到这一点。 选项1:本机角度 Angular提供了一项服务,但文档严重缺乏,我无法使其正常工作。 请访问http://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by- id.html, 以获取有关的一些见解。 选项2:自定义指令/本
是否可以使用Angularjs锚链接? 即: 非常感谢。
问题内容: 我无法将表格行设置为指向某些内容的链接。我只能使用CSS和HTML。我尝试了从div到另一行的不同方法,但仍然无法使它起作用。 问题答案: 您有两种方法可以做到这一点: 使用javascript: 使用锚点: 我使用以下方法进行了第二项工作: 摆脱列之间的空白:
目前用户可以将图片上传到我的网站,图片的位置存储在MySQL表中。 当我使用SELECT函数调用图像时,它们是通过CSS Style background-image: url('image.jpg')加载的 目前,我使用了一个IF语句,将占位符图像放置在列“image\u URL”设置为NULL的任何行的位置。 但是,我的方法不适用于错误的链接(原始图像已被删除,或者由于某种原因,链接错误)它只
我想在firebase存储中上载图像。我知道如何使用Uri在firebase中上传图像。但是有没有一种方法可以让我使用链接将图像上传到firebase? 我在我的项目中使用了一个API,我每月只能点击1000次,所以我试图在firebase中保存从API获取的图像。API提供了一个指向图像的链接,我使用它在Picasso的imageview中显示图像。 假设我的链接是http://xxx.xx.x
问题内容: 这是我用于在Excel中将图像作为图标插入的方法: 这是我使用此方法创建图标的方法: 是否可以在此图标中放置一个超链接以转到同一电子表格中的另一个工作表或网站? 我读到的内容显然没有POI支持,但是可以使用底层的低级API来实现。但是我还不能真正成功地使用它。 有什么建议? 问题答案: 如果只支持可以,那么实际上可以使用底层的低级对象来完成。 如何开始?使用其中包含超链接的图片来创建工