| 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: 6 let
|
|||
0