2017-05-02 13 views
5

Właśnie dodałem kod z this site na mojej własnej witrynie WordPress. Teraz zauważyłem, że kod sprawia, że ​​dodaje on automatyczną wysokość w sekcji, w której celuję, aby zawsze mogła być pełna.Jak korzystać z funkcji przewijania w celu przejścia do określonej sekcji?

JS wygląda następująco:

(function() { 
    var delay = false; 
    $('<a name="#A1">Tag #1.</a>,.home').insertBefore('.eluid6ccc1f08'); 
    $(document).on('mousewheel DOMMouseScroll', function(event) { 
    event.preventDefault(); 
    if(delay) return; 

    delay = true; 
    setTimeout(function(){delay = false},200) 

    var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail; 

    var a= document.getElementsByTagName('a'); 
    if(wd < 0) { 
     for(var i = 0 ; i < a.length ; i++) { 
     var t = a[i].getClientRects()[0].top; 
     if(t >= 40) break; 
     } 
    } 
    else { 
     for(var i = a.length-1 ; i >= 0 ; i--) { 
     var t = a[i].getClientRects()[0].top; 
     if(t < -20) break; 
     } 
    } 
    $('html,body').animate({ 
     scrollTop: a[i].offsetTop 
    }); 
    }); 
})(); 

Jak mogę przejść do konkretnej sekcji, jak tylko mogę przewinąć w dół lub w górę, bez konieczności dodawania automatycznych wysokości?

Dobrym rozwiązaniem mogą być znaczniki zakotwiczenia, ponieważ możesz see in my pen here, ale niestety nie mam dostępu do html witryny, aby fizycznie dodawać znaczniki zakotwiczenia.

Mam nadzieję, że miałem jakiś sens.

Odpowiedz

0

Jeśli możesz użyć zewnętrznych zasobów, stworzyłem wtyczkę JQuery pageScroller jakiś czas temu, która pozwala na "autoscroll" między dziećmi kontenera.

Jeśli nie możesz, możesz dodać swoje kotwice samodzielnie w JavaScript. Wystarczy wybrać element i dodać do niego identyfikator. Następnie możesz użyć go jako kotwicy.

+0

Próbowałem wcześniej użyć znacznika zakotwiczenia z jQuery tak, a wynik był taki sam. Wypróbuję Twój kod tak szybko, jak to możliwe, ponieważ nie mam tu plików witryny. – Ragmah