Was ich habe, ist jetzt:getElementByTagName (a) für Autoscroll
var a = document.getElementsByTagName('a');
ich diese verwenden, um alle Elemente mit einem ‚a‘ zu bekommen und wenn ich scrollen es autoscrolls zum nächsten ‚a‘ Element.
Das Problem damit ist, dass ich auch Links (die eine a href=""
verwenden) verwenden, so dass manchmal zu einer Verknüpfung statt einer <a name="name"></a>
scrollt. Sollen sie das irgendwie beheben? Wie:
var a = document.getElementsByTagName('a name=""');
(dies nicht funktioniert)
Wenn vollständiger Code benötigen ich es unten hinzufügen, aber es ist wahrscheinlich nicht erforderlich.
(function() {
var delay = false;
$(document).on('mousewheel DOMMouseScroll', function (event) {
event.preventDefault();
if (delay) return;
delay = true;
setTimeout(function() {
delay = false
}, 800);
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 >= window.innerHeight * 0.95) break;
}
}
else {
for (var i = a.length - 1; i >= 0; i--) {
var t = a[i].getClientRects()[0].top;
if (t < -window.innerHeight * 0.5) break;
}
}
$('html,body').animate({
scrollTop: a[i].offsetTop
}, 800);
});
})();
Danke 'document.querySelectorAll (" ein [Name] ");' war was ich brauchte, also, wenn Sie Dinge wie 'name' oder' href' verwenden, müssen Sie '[....]' drumherum legen? – Minegolfer