2015-03-02 87 views
3

我在我的菜單上有一個鏈接,它指向另一個頁面上的一個錨點。我想隱藏#anchor從URL。當頁面跳轉時隱藏來自URL的哈希


我嘗試另一種解決方案,請看:

$('#menu #mylink2').click(function() { 
    document.location.href = "www.mysite.com/mysite/"; 
}); 

,然後,我需要激活腳本在頁面加載後,滾動到div:

$(document).ready(function(){ 
    $('html, body').animate({ scrollTop: $("#divtoscroll").offset().top }, 2500); 
}); 

但我不知道如何將這個事件附加到前一個。它的方式是,每當頁面加載時,它都會滾動到div。

任何幫助?


我做到了! 我在URL的最後添加了「contato」以區別於其他鏈接。

$('#menu #mylink2').click(function() { 
    document.location.href = "www.mysite.com/mysite/contato"; 
}); 

並用它來識別URL並激活文檔就緒功能。

var url = "www.mysite.com/mysite/contato"; 
if (location.href==url) { 
    $(document).ready(function(){ 
     $('html, body').animate({ scrollTop: $("#allcontentcontact").offset().top }, 2500); 
    }); 
} 
else { 
} 

完美地工作!謝謝您的幫助。

+0

我99%確定這是不可能的 – ByteHamster 2015-03-02 13:57:54

+0

因此,如果不在網頁中添加散列,就不可能定位到另一頁上的定位點? – 2015-03-02 14:02:47

+0

您有權訪問生成頁面的服務器嗎? – 2015-03-02 14:25:44

回答

0

據我所知,這是不可能的,因爲它是告訴瀏覽器頁面的哪一部分跳轉到。

您可以使用像素和javascript的數量來做到這一點,但它不適用於所有情況。 例子:

window.scrollBy(0, 500); 

您可以使用jQuery滾動到頁面上的特定元素的ID,但是這需要在該網頁上觸發,如點擊,甚至頁面加載。下面的例子使用點擊。

$("#button").click(function() { 
$('html, body').animate({ 
    scrollTop: $("#elementtoScrollToID").offset().top 
}, 2500); 

});

+0

因此,在不更改URL的情況下,無法定位到其他頁面上的定位點? – 2015-03-02 14:01:26

+0

我認爲有jQuery插件可以讓你「滾動到」一個元素(由選擇器標識),這會更精確一些。看看你是否可以找到一對夫婦來改善這個答案:-) – 2015-03-02 14:02:26

+0

'scrollBy'和'scrollTo'可以在**當前**頁面上工作,但不能在另一個**鏈接頁面上工作。 – ByteHamster 2015-03-02 14:06:10