Autor Zpráva
Lorinka
Profil *
Ahoj. Prosil bych o dvě rady:

1, potřeboval bych měnit barvu rámečku při mouseover[/ b] u některých obrázkových odkazů. Lze to docílit třeba pomocí [b]onmouseover="this.style.borderColor ...... a potom onmouseout ...... to je mi jasné, ale potřeboval bych to pro více takových odkazů, ale nevím jak to udělat abych to nemusel u každého vypisovat znova. Teda jestli to lze udělat i jinak než u samostatného inLine zápisu konkrétního odkazu.

2, pro použití obrázkových odkazů které reagují jen na onclick, onmousedown, a podobně, ale jinak jako odkaz nefungují používám zřejmě nesprávný zápis <a href="#" onclick="volání funkcí"><img src="adresa" onmousedown=".... a další. Jde mi o to, aby se měnil kurzor myši tak jako když se jedná o odkaz. Jak se to dělá správně? Tak abych nastavil reakce na onclick, mousedown u samotného obrázku a zároveň se měnil kurzor myši jako u odkazu?
habendorf
Profil
1) bez JS, normální hover
2) nad odkazem se dělá ručička sama, ať už je v něm obrázek nebo nikoliv
jogurt
Profil
1: Neni potreba to delat pres JS. staci do zahlavi dokumentu dat css:
a:hover{border-color:#F00;}

2: uplne stejne.

muzes jim oboum dat ruzny tridy:
<style type="text/css">
a.normalni:hover{border-color:#F00;}
a.divnej:hover{border-color:#FF0;}
</style>
...
<a href="adresa" class="normalni"><img></a>
<a href="#" onClick="prikaz; return false;" class="divnej"><img></a>
Lorinka
Profil *
Díky už jsem myslel, že mám vyhráno se změnou barvy rámečku. Mě nedošlo, že i a:hover mohu přiřadit třídu :-[, ale i tak to problém neřeší. Takhle to funguje správně dokud na obrázkový odkaz nekliknu. Po kliknutí se nastaví barva a:acitve a po návratu zpět do okna z kterého jsem se někam odkazoval se nastaví barva a:visited a potom už na a:hover nereaguje :-( Já chci, aby se bez ohledu na to zdali byl odkaz použitý nebo ne vždy po najetí myší na obrázkový odkaz měnila barva rámečku.
Takže se asi JS nevyhnu a budu muset u každého odkazu vypisovat this.style.BorderColor pro mousehover i mouseout. Nebo ne?
Bubák
Profil
Lorinka
Musíš mít správné deklarace a pseudotřídy ve správném pořadí:
:link
:visited
:active
:hover
Nepotřebné vynechat. Opravdu se u tohoto obejdeš bez JS.
jogurt
Profil
ty pseudotridy jdou kombinovat, muzes napsat treba i tohle:
a.normalni:visited:hover

kdyz napises jenom a:hover, tak je to stejne, jako kdyz napises a:link:hover
j
Lorinka
Profil *
Děkuji už mě to funguje jak jsem chtěl :-) měl jsem pseudotřídy ve špatném pořadí :-[

Ještě bych upřesnil ten druhý dotaz možná jsem se špatně vyjádřil. Měl jsem na mysli situaci kdy mám na stránce obrázek <img src="....." name="....." onmouseclick="......." onmousedown="......" alt="...." .....> a pomocí reakcí na událost volám určitou funkci která zobrazí jinou část stránky pomocí DHTML nebo mění obrázek pomocí name a podobně. Takže takový obrázek reaguje na chování myši, ale nedává to uživateli znát změnou kurzoru tak jako to dělají odkazy. Proto to zapisuji pomocí <a href="#" onclick="...."><img src="....." name="...." mousedown="....." alt="...." .....></a> a otázka zní jestli je to takto správně nebo jestli se to dělá jinak (takto to funguje tak jak chci).
peta
Profil *
Lorinka
Mno, podivej, ono jde spustit JS, ktery na vsechny obrazky s ucitou class prida akci onmouseover down a pod.
Totez jde udelat pro vsechny IMG v DIv s class="neco".

Jinak pry neni spravne pouzivat Acko tam, kde nenastane presmerovani na stranku nebo k cemu je A urceno. Cili <a href="#" onclick="...">
Ale kdyz ti to z tveho pohledu usetri praci a stranka nema komercni vyuziti, tak se to nejak vstreba. Jde o to, ze urciti lide, postizeni, pouzivaji prevadece www na brailovy 6-bodovy zobrazovac a docela spatne se jim pak klika na odkazy, ktere nejsou odkazy. Resp. se divi, co se stalo, ze se nic nestalo :)
A pak je tu dalsi kategorie lidi, kteri pouzivaji vselijake textove prohlizece, pripadne prohlizece v mobilech a tam je to podobny.
Lorinka
Profil *
peta ne, ne naopak mě by to práci ulehčilo ;-) zejména pokud jde jak píšeš spustit JS pro určitý class to by mě mohlo poměrně hodně zmenšit samotný kód a také ho zpřehlednit. Ty akce co na stránkách použiju se opakují na několika místech a tak mám všude onmouseover a podobně.
Jestli jsi ochoten mě naznačit jak na to budu rád :-)

Že se takto tag A nemá používat jsem si myslel proto jsem se na to ptal. Jak tedy jinak mohu docílit změnu kurzoru např. u několika obrázků v jednom div?

předem díky
Lorinka
Profil *
Tak už nikdo nic? :'(
jogurt
Profil
kurzor se meni v css:

cursor:pointer;

este existujou jiny kurzory:
auto
crosshair
default
e-resize
help
move
n-resize
ne-resize
nw-resize
pointer
s-resize
se-resize
sw-resize
w-resize
wait
url
Chamurappi
Profil
Reaguji na jogurta:
Při čemž „pointer“ se původně jmenoval „hand“.
Bubák
Profil
Jestli jsi ochoten mě naznačit jak na to budu rád
Pokud stačí jen naznačit, tak jsem taky rád.
1. expression - příklad s popisem: http://www.tvorba-webu.cz/javascript/expression.php
2. behavior - článek s popise a příkladem http://www.jakpsatweb.cz/css/css-behavior.html

Nevýhoda je, že to podporuje pouze IE.
peta
Profil *
Bubák
jeste muzes pouzit htc -> xbl mozilove, ale to zase podporuje pouze ,mozilla :)

1. 2. Ano, IE, ale prave kvuli IE se tam cpe expression nebo behaviour, protoze mozillove si s tim poradi normalne pres css.

3. XML , coz je dobre treba prave pro to htc
<!--[if IE]>
<style type="text/css">
.menu {behavior:url("csshover.htc");}
</style>
<![endif]-->

ale na intervalu je resen hover i s tim

4. pouzit ten cisty JS, jak uz jsem psal...
je to neco podobne tomuto, s tim, ze se porovnava className a jmeno tagu. nejlepe ohranicit to nejakym tagem s nejakou presnou class nebo nejakym peknym tagName...

function setxEvent(x,xEvent,xFunction)
{
if (isIE) {x[xEvent]=new Function(xFunction);} //IE
else {x.setAttribute(xEvent,xFunction);} //other
}

/* Add onclick on first B tag (JS DOM) */
function addB()
{var i,j,c,d,div;
div=document.getElementById("chat").childNodes;
for(i=0;i<div.length;i++)
{
c=div[i].childNodes;
for(j=0;j<c.length;j++)
{
if(c[j].nodeType==1 && Boolean(c[j].getElementsByTagName("b")[0]))
{
d=c[j].getElementsByTagName("b")[0];
setxEvent(d,'onclick','chatLineAdd(this)');
}
}
}
}

<div id="chat">
<div id="t1234"><b>nick1</b> -- <b>nick2</b> :: text</div>
<div id="t1235"><b>nick1</b> -- <b>nick2</b> :: text</div>
<div id="t1236"><b>nick1</b> -- <b>nick2</b> :: text</div>
</div>
Toto téma je uzamčeno. Odpověď nelze zaslat.

0