2016-09-02 1 views
-1

Ich habe diesen Code, der die folgende Aufgabe ausführt: Wenn die Seite zum ersten Mal geladen wird, ist es versteckt; Ansonsten wird es angezeigt. Der Code, den ich geschrieben habe, macht Sinn, aber es scheint nur einmal zu funktionieren, wenn die Seite geladen ist.Wenn die Seite am oberen Bild ist versteckt Javascript nicht

$(document).ready(function(){ 
    setTimeout(function(){ 
     xyz = $('.verb_logo_w'); 

     if(document.body.scrollTop === 0){ 
      xyz.hide(); 
     }; 

     window.onscroll = function(e){ 
      xyz.show(); 
     }; 
    },10); 
}); 

Antwort

0

Sie müssen auch die Haut Funktion Scroll-Ereignis hinzuzufügen:

$.scrollTop = function() { 
    if ($(document).scrollTop() === 0) { 
     $('.verb_logo_w').hide(); 
    } else { 
     $('.verb_logo_w').show(); 
    } 
}; 
//onScroll 
$(window).on('scroll', function() { 
    $.scrollTop(); 
}); 
//Init 
$.scrollTop(); 

Und diesen Block außerhalb des Timeout bewegen.

Hier ist eine funktionierende jsFiddle.

Der Text wird nur angezeigt, wenn scrollTop beim Laden der Seite nicht 0 ist und bei Blättern.

+0

Dank Kumpel, jetzt sortiert. –

0

Sie haben das Ereignis "scroll" nicht ordnungsgemäß verwendet.

$(document).ready(function() { 
 
    
 
    $xyz = $('.verb_logo_w'); 
 
    
 
    function pageScrolled() { 
 
    var scrollTop = $(document).scrollTop(); 
 
    
 
    // informative purpose 
 
    console.log("scrollTop value: " + scrollTop); 
 
    
 
    if(scrollTop === 0) { 
 
     $xyz.show(); 
 
    } else { 
 
     $xyz.hide(); 
 
    } 
 
    } 
 

 
    $(window).on("scroll", pageScrolled); 
 
});
body { 
 
    height: 3000px; 
 
} 
 

 
.verb_logo_w{ 
 
    height: 200px; 
 
    width: 200px; 
 
    background: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="verb_logo_w"><div>

Verwandte Themen