我的工作時間表頁面上,並想創建一個類似的年本頁面右邊的列表中選擇一個功能:https://www.mikebloomberg.com/about/當用戶點擊滾動頁面的錨點鏈接時,是否可以禁用.scroll功能?
我有一個click事件設置添加周圍的日期了一圈邊框用戶選擇它並在選擇其他日期時將其刪除。使用此viewport plugin,我也有我的頁面設置,以便在當前屏幕上顯示的年份/日期周圍出現圓形邊框。
我遇到的問題是,當用戶單擊一年並且頁面滾動到正確的錨點時,圓形邊框會在列表中每年出現並消失,直到它出現在正確的年份。所以基本上點擊也是關閉滾動功能。
我想要做的是停止用戶單擊時發生的滾動功能,但一旦頁面滾動到正確的位置後再次啓動。任何想法或建議,將不勝感激!
腳本滾動功能:
$(window).scroll(function(){
if($("#intro:in-viewport").length > 0){
$('.tNavIntro').css({border: '2px solid #50b855'});
$('.tNav2012').css({border: ''});
}
else if($("#time2012:in-viewport").length > 0){
$('.tNav2012').css({border: '2px solid #50b855'});
$('.tNavIntro').css({border: ''});
$('.tNav2013').css({border: ''});
}
else if($("#time2013:in-viewport").length > 0){
$('.tNav2013').css({border: '2px solid #50b855'});
$('.tNavIntro').css({border: ''});
$('.tNav2012').css({border: ''});
$('.tNav2015').css({border: ''});
}
else if($("#time2015:in-viewport").length > 0){
$('.tNav2015').css({border: '2px solid #50b855'});
$('.tNavIntro').css({border: ''});
$('.tNav2013').css({border: ''});
$('.tNav2016').css({border: ''});
}
else if($("#time2016:in-viewport").length > 0){
$('.tNav2016').css({border: '2px solid #50b855'});
$('.tNavIntro').css({border: ''});
$('.tNav2015').css({border: ''});
}
});
對於點擊功能:
$('.timeLineNavWrap div').on('click', function(){
$('div.selected').removeClass('selected');
$(this).addClass('selected');
});
這是我最後套結的點擊=假線到功能,落實到位作爲工作從頂部的url中獲取錨鏈的#鏈接:
$(document).ready(function(){
$('.link').on('click',function (e) {
$('html, body').stop().animate({
'scrollTop': $($(this).attr('rel')).offset().top
}, 900, 'swing', function() {
clicked = false;
});
});
});
沒有第二clicked = false,在點擊功能,這沒有運行該滾動腳本的工作。然而,在頁面滾動到正確的位置之前,在頁面結尾處添加clicked = false會使其返回,因此您仍然可以看到邊框圓圈每年出現和消失導致點擊一次的相同結果。 –
它必須根據您的特定代碼進行調整,但這是一般想法。 – Scimonster
我最終將一個函數添加到動畫元素的末尾,以添加clicked = false,並且做了這個訣竅。謝謝你的幫助。 –