2017-03-17 57 views
0

我有一個固定的div與錨點,當點擊「跳轉」到頁面上的區域。由於頁面跳轉時固定div下方的主體與固定標題重疊,因此我的目標被重疊。調整固定標題並點擊功能

被跳轉爲使用數據屬性在選項卡之間切換的元素。當跳躍點擊事件觸發時,我試圖動態地向身體添加填充,但是存在計時問題。爲了克服這一點,我添加了setTimeout,以便按順序添加填充以便工作。

點擊事件重置,當第二個點擊事件發生應該保持標籤div在固定div下方,但事實並非如此。我必須在單擊時刪除填充樣式,並使用相同的setTimeout函數以定時間隔將其添加回去。這是有效的,除了過渡是突然的。

接下來我添加了一個空值的fadeOut函數,然後fadeIn的正值爲1。這會快速隱藏元素並將其淡入,但是消除突變填充轉換的時機已經太晚了,此外,選項卡下方的元素也會受填充值的影響。

如何強制頁面/元素位於滾動下的固定div下方,以便解決當前問題時不重疊?


jQuery(".totab").click(function() { 
    jQuery("body").css({ 
      "padding-top" : "" 
      }); 
    function delayHashedClick(){ 
     jQuery("body").css({ 
      "padding-top" : "110px" 
     }); 
     jQuery(".hashed").fadeOut(); 
     jQuery(".hashed").fadeIn(1); 
    } 
    setTimeout(delayHashedClick, 150); 
}); 

https://sites.btwebnetwork.com/btwebgroup(點擊第二導航下拉菜單事件)和當錨#哈希被打開,然後使用click功能應用所需的CSS的onload事件

回答

0

setTimeout去做剩下的魔法保持一致的體驗,但是最終你會看到內容。還有一些突然跳躍,但大多數遊客將利用標籤導航,而不是在那個點上的錨點#散列導航。

這並不完美,超時和淡入淡出過渡時間必須稍微玩一下,才能讓它看起來不錯。

function delayHashedLoad(){ 
    jQuery(".hashed").css({ 
     "margin-top" : "140px" 
    }); 
    } 
window.onload = setTimeout(delayHashedLoad, 1200); 
// 
jQuery(".totab").click(function() { 

    function delayHashedReset(){ 
     jQuery(".hashed").css({ 
      "margin-top" : "" 
     }); 
    jQuery(".hashed").fadeOut(); 
    } 
    delayHashedReset(); 

    function delayHashedClick(){ 
     jQuery(".hashed").css({ 
      "margin-top" : "130px" 
     }); 
     jQuery(".hashed").fadeIn(500); 
    } 
    setTimeout(delayHashedClick, 1000); 
});