2017-08-08 70 views
-1

我不明白爲什麼此功能在Edge上無法正常工作。滾動到頁面上的特定位置不起作用瀏覽器邊緣

function contactos(thi) 
{ 
    var contactos = document.getElementById('contactos'); 
    window.scrollTo(0, contactos.offsetTop - 160); 

} 

這是HTML

<a href="javascript:void(0)" onclick="contactos(this)">Contatos</a> 
+0

什麼,你的意思是*不正常*? –

+0

我加載的鏈接和頁面不移動,而在鉻和Safari瀏覽器我加載鏈接,它去的頁面的位置定義 –

+0

你有任何錯誤在JS控制檯? –

回答

0

我只是在邊緣測試window.scrollTo()和它的作品如預期。

,想到的唯一的事情是,也許contactos不存在或不具有offsetTop財產。調試它:

  1. 進入到邊緣
  2. 打開developer tools(按F12)
  3. 在控制檯選項卡,寫document.getElementById('contactos')
  4. 如果打印出undefined,它的存在以外的東西。
  5. document.getElementById('contactos').offsetTop
  6. 如果它打印其他那undefined它存在。

如果您成功達到最後一點,這是因爲在代碼中的其他地方存在問題。您可能需要進一步調試。

編輯:您沒有ID爲「contactos」的元素。你可以做的三兩件事之一:

  1. 既然你傳遞給你的函數(function contactos(element)),你可以window.scrollTo(0, element.offsetTop - 160);

  2. 或者,你先設置var contactos = element,並保持休息。

  3. 或者,更好的,設置一個ID在html元素,像這樣:<a href="javascript:void(0)" id="contactos" onclick="contactos(this)">Contatos</a>

這裏有一個片段。嘗試使它成爲一個按鈕。

function contactos(element) 
 
{ 
 
    window.scrollTo(0, element.offsetTop + 160);  
 
}
<button onclick="contactos(this)">Contactos</button> 
 

 
<!-- gibberish --> 
 
<br/><br/><br/><br/><br/><br/><br/> 
 
<br/><br/><br/><br/><br/><br/><br/> 
 
<p>Text added just to see movement</p>

+0

錯誤:「無法獲取未定義或空引用的屬性'offsetTop'」 –

+0

@TâniaDias這意味着,您無法獲取某些不存在的屬性。你沒有一個id爲「contactos」的元素。 –

+0

在html中我有這個: Contatos

相關問題