Autor Zpráva
Camo
Profil
Pekný deň všetkým!
Môže mi niekto poradiť ako to riešiť? Mám menu, ktoré nepresmerováva stránku, ale smeruje len na kotvy v stránke - href="#nieco".
Preto podfarbujem navštívený odkaz javascriptom(možno je to chyba...). No a akonáhle priradím odkazu backgroundColor tak prestane fungovať hover na tomto odkaze. Neviete ako to vyriešiť?
Vďaka!

Takto nejako vyzerá kód:
<script type="text/javascript">
var oldID="PONUKA";
<!-- zobrazuje jednotlive sekcie v casti "OBSAH" -->
function zobraz(ID){
                     document.getElementById(ID).style.display="block";
                     document.getElementById("m"+ID).style.backgroundColor="#eba877";
                     if(oldID!=ID){
                             document.getElementById(oldID).style.display="none";
                            document.getElementById("m"+oldID).style.backgroundColor="#283c5a";
                     }
                     else return false;
                     oldID=ID;
                     }
</script>
...
<menu>
      <li><a id="mPONUKA" onclick="zobraz('PONUKA'); return false;" style="background-color:#eba877">Ponuka</a></li>
     <li><a id="mPROFIL" href="#profilANCH" onclick="zobraz('PROFIL'); return false;">Profil</a></li>
     <li><a id="mTECHNOLOGIE" href="#technologieANCH" onclick="zobraz('TECHNOLOGIE'); return false;">Technológie</a></li>
      <li><a id="mKONTAKT" href="#kontaktANCH" onclick="zobraz('KONTAKT'); return false;">Kontakt</a></li>
           <li><a id="mFOTOGALERIA" href="fotogaleria.php">Fotogaléria</a></li>
     <li><a id="mDROM" href="drom.php">Drom</a></li>
</menu>
panther
Profil
Camo:
ve funkci samozrejme neni videt promenna oldID, proto vzdy else vetev a return false;.
Camo
Profil
panther:
oldID je viditeľná vo funkcii - je to globálna premenná. S tým neni problém. Buď ťa nechápem, alebo naopak... Funkcia odkazy normálne zafarbí, tak ako je napísaná, ale prestane fungovať CSS hover napr. : menu a :hover{background-color:green}. Kým odkaz neprebehne cez tú funkciu, tak hover funguje normálne.
Chamurappi
Profil
Reaguji na Cama:
Ve zdejším kódu máš na řádku 3 syntaktickou chybu, v JavaScriptu nemůžeš používat HTML komentáře (pokud stránka není opravdové XHTML, což nejspíš není). Ale předpokládám, že by sis stěžoval jinak, kdyby toto byla příčina.

No a akonáhle priradím odkazu backgroundColor tak prestane fungovať hover na tomto odkaze.
Styl nastavený přes vlastnost style se ukládá do atributu style, takže má běžně vyšší prioritu, než jakýkoliv selektor ve stylopisu. Jedna z možností je přebít prioritu !importantem, druhá možnost je měnit třídu (tedy className) místo konkrétního stylu a nechat celý vzhled na selektorech ve stylopisu.

Pokud nepotřebuješ, aby aktivní položka měla :hover efekt a jde ti jen o ty navštívené a následně opuštěné, tak také můžeš zajistit, že ve style opuštěné položky nebude žádný background-color — tím, že nastavíš style.backgroundColor = "". Pak bude mít přednost barva z CSS.


Reaguji na panthera:
samozrejme neni videt promenna oldID
Je to globální proměnná (deklarovaná na řádku 2), vidět bude.
Camo
Profil
Chamurappi:
1. Už si nepamätám prečo som použil také komentáre. Nemohol to byť nejaký problém s JS komentármi v sekcii head??? Fakt nechápem prečo sú tam...

2. rozmýšľam, či toto riešenie (sekcie stránky ako skryté bloky), je lepšie ako klasické presmerovanie na novú stránku. Urobil som to tak v domnení, že na stránke bude viac obsahu pre vyhľadávače. Ale keď sa vypne JS tak stratím orientáciu v menu aj v tom kde sa práve nachádzam na stránke. Ktorý spôsob by ste si vybrali resp. má to pre vyhľadávače zmysel???

3. Je to stým style atribútom naozaj tak. Keď to zmením na className alebo na to backgroundColor="", tak to funguje. Len teraz neviem či ostať pri tomto modeli, alebo to kvôli tým dôvodom v bode dva, rozsekať na podstránky. Neviete mi poradiť?

A vďaka za rady!
Chamurappi
Profil
Reaguji na Cama:
Jestli jsem tě dobře pochopil, děláš něco jako Pixy na svém osobním webu. Tomu bych se obloukem vyhnul.
Můj pohled je takový, že pokud se mění celý hlavní obsah stránky, mělo by se normálně přejít na jinou adresu. Je to přirozené, jednoduché, předvídatelné.
Camo
Profil
Chamurappi:
Áno presne toto mám na mysli. Prečo je lepšie sa tomu vyhnúť? Neviete ako to vplýva na vyhľadávače? Je v tom prístupe výhoda, alebo to vykompenzujú príbuzné odkazy z tej istej domény?
Chamurappi
Profil
Reaguji na Cama:
Prečo je lepšie sa tomu vyhnúť?
Je to zbytečně složité, může se toho víc pokazit. Sice zrychlíš přecházení mezi částmi webu, ale zpomalíš první načtení, které bývá nejdůležitější. Musíš řešit adresy, tedy zpracovávat kotvy, zachytávat interní odkazy, počítat s tím, že si třeba návštěvník otevře odkaz do nového tabu…

Neviete ako to vplýva na vyhľadávače?
Neočekával bych z tohoto pohledu žádné zlepšení. Tím, že upravíš technické podloží, aniž by se viditelně změnilo běžné používání webu, si nemůžeš nijak pomoct. Spíš si můžeš uškodit, pokud uděláš v něčem chybu.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: