2016-09-07 1 views
0

ich dieses Skript haben Navigation an einem bestimmten Punkt auf der Homepage zu verstecken:jQuery Konflikt verursacht WooCommerce Produktbilder nicht zu laden

jQuery(document).ready(function() { 
    jQuery("#dot-nav").show(); //show div initially 
    var topOfOthDiv = jQuery("#hidedn").offset().top; 
    jQuery(window).scroll(function() { 
     if(jQuery(window).scrollTop() > topOfOthDiv) { //scrolled past the other div? 
      jQuery("#dot-nav").hide(100); //reached the desired point -- hide div 
     } 
     if(jQuery(window).scrollTop() < topOfOthDiv) { //hide div 
      jQuery("#dot-nav").show(100); 
     } 
    }); 
}); 

aber es WooCommerce Produktbilder verursachen nicht geladen werden. Ich brauche das Skript nicht auf den Woocommerce-Seiten, bevor ich versuche, mich mit functions.php zu beschäftigen, um es nur auf der Homepage einzubinden. Weiß jemand, wie ich das lösen kann? Ich bin wenig mehr als ein jQuery-Neuling, also entschuldige ich mich, wenn du mehr Kontext brauchst!

+0

Erhalten Sie einen Fehler in der Konsole? – skobaljic

Antwort

0

Der Fehler tritt auf, weil der Versatz des ausgeblendeten Elements oder des Elements, das nicht vorhanden ist, nicht abgerufen werden kann.

jQuery unterstützt nicht die Offset-Koordinaten von versteckten Elemente bekommen oder einem Anteil von Rahmen, Ränder oder Polstern auf dem Element Körper eingestellt.

Was Sie tun müssen, ist zu prüfen, ob Element vorhanden ist:

jQuery(document).ready(function() { 
    var dotNav = jQuery("#dot-nav"); 
    var theDiv = jQuery("#hidedn:visible"); 
    if(dotNav.length>0 && theDiv.length>0) { 
     dotNav.show(); //show div initially 
     jQuery(window).scroll(function() { 
      var topOfOthDiv = theDiv.offset().top; 
      if(jQuery(window).scrollTop() > topOfOthDiv) { //scrolled past the other div? 
       dotNav.hide(100); //reached the desired point -- hide div 
      } 
      if(jQuery(window).scrollTop() < topOfOthDiv) { 
       dotNav.show(100); 
      } 
     }); 
    }; 
}); 

Bitte beachten Sie: Sie müssen den Offset innerhalb das Fenster Scroll-Ereignis zu überprüfen.

+0

Vielen Dank! Wirklich elegante Lösung. –

+0

Gern geschehen. Wenn es dir gefällt oder akzeptiere es, Prost. – skobaljic