Autor | Zpráva | ||
---|---|---|---|
Hapipo Profil |
Ahoj,
mám na webu script na změnu loga při scrollování. Vše funguje naprosto v pořádku, až na to, že když jsem např. v polovině stránky a dám refresh, tak se barva dá opět do základní barvy, dokud zase mírně se stránkou nepohnu. Tady je stávající script <script> $(function(){ $(window).scroll(function(){ if($(this).scrollTop()>50){ $(".site-logo").attr("src","img/logo_color.svg"); } else{ $(".site-logo").attr("src","img/logo_white.svg"); } }) }) </script> Prosím o radu, jak tento problém fixnout. Díky |
||
Keeehi Profil |
Těch způsobů je spousta. Všechny spočívají v tom, že je to prostě potřeba spustit i při načtení stránky, ne jen při scrollu. Jedna z možností je to vyčlenit do funkce a tu prostě zavolat.
<script> $(function(){ var logo = $(".site-logo"); var j_window = $(window); function logoChanger() { if(j_window.scrollTop()>50){ logo.attr("src","img/logo_color.svg"); } else{ logo.attr("src","img/logo_white.svg"); } } logoChanger(); j_window.scroll(logoChanger); }) </script> + přidal jsem tam lehkou optimalizaci, ať se ten element s logem nemusí hledat při každém otočení kolečkem. Pokud se ale manipuluje nějak s DOMem v okolí loga, může se stát, že to pak nebude fungovat. V takovém případě je ta optimalizace potřeba vrátit zpět. To ale nemění nic na způsobu řešení toho původního dotazu. |
||
Kcko Profil |
#3 · Zasláno: 6. 4. 2020, 10:15:36
Případně
$(window).scroll(function(){ if($(this).scrollTop()>50){ $(".site-logo").attr("src","img/logo_color.svg"); } else{ $(".site-logo").attr("src","img/logo_white.svg"); } }).trigger('scroll'); |
||
Časová prodleva: 3 dny
|
|||
Hapipo Profil |
#4 · Zasláno: 9. 4. 2020, 21:27:54
Děkuji, funguje
|
||
Časová prodleva: 4 roky
|
0