Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 链接到另一页上的锚定标记_Javascript_Html - Fatal编程技术网

Javascript 链接到另一页上的锚定标记

Javascript 链接到另一页上的锚定标记,javascript,html,Javascript,Html,因此,我有一些带有按钮的部分,这些按钮链接到另一个页面上的特定div。他们用电脑工作得很好 <a id="btn1" class="btn btn-default" href="http://example.com/services.html#corporate" role="button">More</a> 链接到另一个页面上id为“corporate”的div,依此类推 问题是,当页面打开时,就在它聚焦于锚标记之前,它在聚焦于div之前会闪烁主标题。是否有任何方

因此,我有一些带有按钮的部分,这些按钮链接到另一个页面上的特定div。他们用电脑工作得很好

<a id="btn1" class="btn btn-default" href="http://example.com/services.html#corporate" role="button">More</a>

链接到另一个页面上id为“corporate”的div,依此类推


问题是,当页面打开时,就在它聚焦于锚标记之前,它在聚焦于div之前会闪烁主标题。是否有任何方法可以避免这种情况?一旦你跟随链接一次又一次返回,这很好,所以看起来只是在关注div之前先加载并显示链接的问题。任何建议都值得欣赏。

不太好。问题是,在您导航到该页面的瞬间,该页面并没有完全加载,因此,
#corporate
锚暂时不存在。因此,您首先会看到页面顶部的闪动,然后在可用时导航到相应的定位点。

您可以尝试使用jQuery向下滚动到ID。至少这是一个平稳的过程。这样,您还可以让用户知道ID在页面上的位置,这样他们就不会对导航到的位置感到困惑

var j = (document.URL.substring(document.URL.lastIndexOf("\/")+1));
var hash = j.substring(j.lastIndexOf("#"))
if(j.lastIndexOf("#")!=-1) 
{
var j = j.substring(0,j.lastIndexOf("#"))
$(document).ready(function(){
                $('html, body').stop().animate({
                    scrollTop: $(hash+'').offset().top
                     }, 1000);
});

我从一个我使用它的网站上抓取了这段代码,如果有任何错误,我深表歉意。

没有办法避免,页面在得到url哈希和滚动之前加载。这是因为浏览器在跳转到div之前加载了整个页面。现在有办法避免它,除了可能构建自己的浏览器。@litelite“构建自己的浏览器”“你说呢?这似乎有点像一项事业。o。O@FrankerZ我知道,我这么说是为了增加一点幽默感。好吧,我也这么想,客户不想滚动到div,所以我只是想知道有没有其他办法。感谢您的帮助:)您可以尝试添加一个小延迟,然后添加一个平滑的滚动到所需的div。您还可以在获得时使整个页面的不透明度淡入淡出addressed@T.Okahara只有当他拥有他链接的页面时,这才有可能。如果他试图将用户发送到外部页面上的某个特定位置,那么就没有办法引入延迟。谢谢你,是的,我想到了,但是客户不想向下滚动,只想直接在锚上着陆,所以只是想知道是否有其他方法可以绕过它。谢谢你的回复希望它能起作用。不完全是你想要的,但仍然很好。