Ich habe eine Seite mit einem Link nach oben (in einer ganzen Leiste) Folien am oberen Rand der Seite, nur auf Bildlauf nach oben eingerichtet.Javascript-Syntax Hilfe für einen Link nach oben, der nur auf Bildlauf angezeigt wird
Ich bin ein Anfänger mit Javascript, also habe ich etwas zusammen Cobbled, das funktioniert (es zeigt auf Scroll-up, es sei denn wir sind 500px von oben, verbirgt sich auf Scroll-down), und es verwendet einige Code I von hier aus nicht alle Pixel scrollen zu überprüfen.
Was ich will ist hinzuzufügen, dass, selbst wenn Sie noch Scrollen nach oben, wenn Sie in das Untermenü zu bekommen, dann sollte die toplink wieder die Seite scrollen - Ich habe keinen nach oben müssen, wenn Sie an die sind oben.
Ich habe dies mit einem zweiten JavaScript-Skript zu arbeiten, aber ich weiß, dass es eine viel bessere Möglichkeit, so etwas zum ersten Aufruf arbeiten muss. Auch dieser zweite Aufruf verwendet die window.scroll-Funktion, von der ich mir ziemlich sicher bin, dass sie falsch ist.
FIRST SCRIPT
// Hide Header on on scroll down
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var subMenu = $('#subMenu').offset().top;
$(window).scroll(function(event){
didScroll = true;
});
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
function hasScrolled() {
var st = $(this).scrollTop();
// Make sure they scroll more than delta
if(Math.abs(lastScrollTop - st) <= delta)
return;
// If they scroll down, add class .nav-up.
if (st > lastScrollTop && st){
// Scroll Down
$('#backtotop').removeClass('nav-down').addClass('nav-up');
$(".toplink").fadeOut("fast");
} else {
// Scroll Up
if(st + $(window).height() < $(document).height() && st > 500) {
$('#backtotop').removeClass('nav-up').addClass('nav-down');
$(".toplink").fadeIn("slow");
}
}
lastScrollTop = st;
}
zweite Skript
<script>
$(window).scroll (function()
{var st = $(this).scrollTop();
var subMenu = $('#subMenu').offset().top;
if (st < subMenu) {
$('#backtotop').removeClass('nav-down').addClass('nav-up');
$(".toplink").fadeOut("fast");
}
});
</script>
Fiddle mit dem HTML und CSS: https://jsfiddle.net/Lu0jz3nc/11/
Versuchen 'hasScrolled' laufen, wenn Sie die' klicken auf top' Taste – Downgoat
dank Vihan aber wirklich bin ich ein Anfänger, ich habe keine Ahnung, wie/was zu tun! Könntest du mir ein Beispiel geben? Auch das möchte ich beim Klick nicht machen. Ich möchte nur, dass der Link von oben nach links verschwindet, wenn sie weiter scrollen. –
Etwas wie [dies] (https://jsfiddle.net/Lu0jz3nc/12/)? – Downgoat