| Autor | Zpráva | ||
|---|---|---|---|
| BMWdejf Profil * |
#1 · Zasláno: 17. 1. 2014, 19:07:48
Zdravím,
potřeboval bych poradit na stránce mám tento javascript window.onscroll = function () {
var banner = document.querySelector('#banner');
if (window.scrollY > 270) {
banner.style.top = "10px";
banner.style.position = "fixed";
banner.style.button = "50px";
} else {
banner.style.position = "initial";
banner.style.top = "auto";
}vše funguje tak jak má až na jednu drobnost ve chvíli kdy vložím a zprovozním druhý javascript na té samé stránce : window.onscroll = function () {
var adsense = document.querySelector('#adsense');
if (window.scrollY > 630) {
adsense.style.top = "10px";
adsense.style.position = "fixed";
} else {
adsense.style.position = "initial";
adsense.style.top = "auto";
}
}přestane ten první javascript fungovat a funguje jen ten druhý. Každý z nich je uložen v samostatném souboru. Dokázal by mi zde někdo poradit proč se tyto dva scripty navzájem ruší a co udělat aby mohli oba dva vedle sebe paralerně běžet. Děkuji za jakoukoliv pomoc. |
||
| Orkee Profil |
#2 · Zasláno: 17. 1. 2014, 19:13:04
Tou druhou funkcí si přepisuješ ten první event. Nejednodušší bude, když kód z druhé funkce vložíš do té první anonymní funkce. Nebo půjdeš cestou addeventlistener
Popř v jquery tuším metoda .bind('scroll',function(){...}); |
||
| BMWdejf Profil * |
#3 · Zasláno: 17. 1. 2014, 20:45:26
Super díky za reaklci trochu jsem si to proštudoval ale jelikož je velký předpoklad že web bude otevírán i ve starších prohlížečích než je IE 9 tak potřebuji aby to fungovalo i v nich což asi addeventlistener nebude to pravé řešení
Můžu se tě zeptat jak jsi to myslel to vložení druhé funkce do té první? Díky |
||
| Chamurappi Profil |
#4 · Zasláno: 17. 1. 2014, 20:56:20
Reaguji na BMWdejfa:
„web bude otevírán i ve starších prohlížečích než je IE 9 tak potřebuji aby to fungovalo i v nich“ Metoda document.querySelector nefunguje v Explorerech starších než verze 8. Proč na hledání podle ID nepoužíváš document.getElementById?
Také u window.scrollY dost pochybuji, že funguje ve starších Explorerech, lepší by asi bylo zjišťovat vlastnost scrollTop z <html> (+ <body>).
A ještě do třetice — přiřazení "initial" (jakožto neznámé hodnoty) také v Explorerech vyvolá výjimku. Proč nepřiřazuješ prázdný řetězec?
Odkud jsi tento příšerný skript vyštrachal? „Každý z nich je uložen v samostatném souboru.“ Proč? Musí to tak být? „jak jsi to myslel to vložení druhé funkce do té první“ Nejsnazší je tam zkopírovat její tělo. Prostě mít obojí v jedné funkci. |
||
| BMWdejf Profil * |
#5 · Zasláno: 17. 1. 2014, 21:43:27
Řekl bych že ještě něco dělám špatně ale nevím co :(
window.onscroll = function () {
var banner = document.getElementById('banner');
if (window.scrollTop > 270) {
banner.style.top = "10px";
banner.style.position = "fixed";
} else {
banner.style.position = "relative";
banner.style.top = "auto";
}
var adsense = document.getElementById('adsense');
if (window.scrollTop > 630) {
adsense.style.top = "10px";
adsense.style.position = "fixed";
} else {
adsense.style.position = "relative";
adsense.style.top = "auto";
}
} |
||
|
Časová prodleva: 12 let
|
|||
0