2017-01-09 2 views
-1

Ich habe eine klebrige Header, die Javascript ich im Internet gefunden habe. Das Skript funktioniert gut, aber ich möchte ein zusätzliches Feature hinzufügen. Wenn ein Symbol angeklickt wird, möchte ich die Kopfzeile erweitern und immer dann, wenn die Seite erneut gescrollt wird, um sie wieder einzufahren. Das Problem ist, dass ich nur grundlegende Erfahrung mit Javascript habe und etwas zusätzlichen Code hinzugefügt werden muss. Ich hoffe, dass einige von Ihnen mir helfen können.Make sticky header erweitern, wenn ein div geklickt wird

function init() { 
    window.addEventListener('scroll', function(e){ 
     var distanceY = window.pageYOffset || document.documentElement.scrollTop, 
      shrinkOn = 50, 
      header = document.querySelector("header"); 
     if (distanceY > shrinkOn) { 
      classie.add(header,"smaller"); 
     } else { 
      if (classie.has(header,"smaller")) { 
       classie.remove(header,"smaller"); 
      } 
     } 
     }); 
} 
window.onload = init(); 
+1

Wir werden Ihren Code nicht für Sie schreiben, Sie schreiben ihn und dann helfen wir ** spezifische Probleme ** zu beheben, wenn es nicht funktioniert. –

Antwort

0

Einen weiteren Tag hinter dem Bildschirm und ich kam zu folgenden Lösung versuchen.

<script> 
function init() { 
    window.addEventListener('scroll', function(e){ 
     var distanceY = window.pageYOffset || document.documentElement.scrollTop, 
      shrinkOn = 50, 
      header = document.querySelector("header"); 
      expand = document.getElementById("MyDiv").addEventListener("click", function(){ 
       if (classie.has(header,"smaller")) { 
       classie.remove(header,"smaller"); 
      } 
}); 
     if (distanceY > shrinkOn) { 
      classie.add(header,"smaller"); 
     } else { 
      if (classie.has(header,"smaller")) { 
       classie.remove(header,"smaller"); 
      } 
     } 
     }); 
} 
window.onload = init(); 
</script> 

Es funktioniert wie Magie (genau wie ich will). Obwohl ich wirklich keine Ahnung von Javascript habe, werde ich dankbar sein, wenn jemand erfahrener es überprüft hat und lassen Sie mich wissen, wenn etwas falsch ist.

0

können Sie so etwas wie diese

function init() { 
var distanceY = window.pageYOffset || document.documentElement.scrollTop, 
       shrinkOn = 50, 
       header = document.querySelector("header"); 
    window.addEventListener('scroll', function(e){ 

     if (distanceY > shrinkOn) { 
      classie.add(header,"smaller"); 
     } else { 
      if (classie.has(header,"smaller")) { 
       classie.remove(header,"smaller"); 
      } 
     } 
     }); 

     document.getElementById("yourdiv").addEventListener('click', function(e){ 
       if (classie.has(header,"smaller")) { 
       classie.remove(header,"smaller"); 
      } 
     }); 
} 
window.onload = init(); 
+0

Hallo Chandan, ich habe das schon probiert aber es geht nicht. – azzza

+0

Hallo Pranay, die Änderung, die du gemacht hast, scheint den Code zu brechen, so dass der Header nicht mehr funktioniert. Kann sein, dass es mit dem anderen Javascript, das in einer separaten Datei ist, interferiert. Wie auch immer, danke für eure Bemühungen, Leute. – azzza

Verwandte Themen