Avatar billede md_craig Nybegynder
19. februar 2004 - 00:49 Der er 18 kommentarer og
1 løsning

Skifte style ved mouse over?

Jeg skal have skiftet et par ting i style ved en mouse over...
Men er ikke interreseret i at oprette en desideret script blok...

HAr denne Div:

<div  title='".$data[5]."'
                    style='top: ".$from_top."px; left: ".$indent."px; height: ".$height."px; z-index: ".$z_index.";
                          background-color: ".$data[7]."; filter:progid:DXImageTransform.Microsoft.Alpha(opacity = ".$opacity.");'
                    class='kalenderblockdiv'></div>

Så vidt jeg ved skulle:

onmouseover="this.style.tag=value"
onmouseout="this.style.tag=value"

virke ??? det gør det dog umidelbart ikke...
Er interesseret i at ændre z-index og Alpha(opacity)

Noget hjælp ???
Avatar billede md_craig Nybegynder
19. februar 2004 - 00:51 #1
kan evt også bruge en der ændre class='kalenderblockdiv' til en ande class...
Hvis det er næmmere...
Avatar billede schaefner Juniormester
19. februar 2004 - 00:56 #2
Prøv:

onmouseover="this.className='newclass'"
Avatar billede md_craig Nybegynder
19. februar 2004 - 00:56 #3
det sidste er nok næmmere...
Avatar billede skovenborg Nybegynder
19. februar 2004 - 00:56 #4
du skriver det måske forkert - når du bruger this.style.etellerandet går det nemlig ikke at skrive det samme som du plejer i CSS. For z-index skal du nemlig skrive:
this.style.zIndex = value
Avatar billede roenving Novice
19. februar 2004 - 01:01 #5
>>og skal vi lige gentage M$s forsværgelse af at ændre class on-the-fly: 'Never change the className of an existing tag in a document, but change the style-properties you need to adjust instead' -- og lidt senere forklarer de så, at browseren genberegner hele sit css-DOM-træ, når eet className ændres i dokumentet ...

onmouseover="this.style.zIndex='7';this.filters.alpha.opacity='50'"
onmouseout="this.style.zIndex='3';this.filters.alpha.opacity='10'"
Avatar billede skovenborg Nybegynder
19. februar 2004 - 01:06 #6
roenving >> Bare mærkeligt at det alligevel virker (i IE6) - har selv ingen problemmer med at skifte klassen med onmouseover...
Avatar billede roenving Novice
19. februar 2004 - 01:15 #7
Næh, det er ikke mærkeligt, at det virker, for det er helt lovligt ...

Noget andet er så om det er hensigtsmæssigt, at lære folk at gøre den slags !-)

Har du en relativt simpel side, hvor der ikke nestes ret meget, og dine classes ikke er lavet til at udnytte arv og nesting, er det jo ikke så svært at genberegne, så der vil du næsten ikke kunne mærke forskel !o]

Men forestil dig et site, hvor der er lavet en enormt fancy css-fil, hvor man styrer style properties med voldsomt nestede kombinationer af classes og tag-names (f.eks. .menu td a:hover span{color:green} ), så bliver der noget at gå igang med for css-fortolkeren i browseren ...

-- og det selv om du ændrer et className, som intet har med ovenstående at gøre, for det har browseren på forhånd opgivet at følge med i, så den genberegner bare hele træet !-)
Avatar billede skovenborg Nybegynder
19. februar 2004 - 01:20 #8
ahh, tror bare jeg misforstod noget - kan godt se din pointe nu ;-)
Avatar billede md_craig Nybegynder
19. februar 2004 - 01:23 #9
roenving >>>
så det her burde altså virke ???
For det kan jeg ikke lige PT få det til... melder JS fejl....

Error = 'this.filters.alpha' is null or not an object
_________________________________________________________
<div
title="dotjem"
style="top: 100px; left: 532px; height: 180px;
background-color: #0000FF;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity = 75);
z-index: 101;"
class="kalenderblockdiv"
onmouseover="this.style.zIndex='110';this.filters.alpha.opacity='100'"
onmouseout="this.style.zIndex='101';this.filters.alpha.opacity='75'"
></div>
Avatar billede roenving Novice
19. februar 2004 - 01:31 #10
Tjah, jeg bruger jo selv den der this.filters.opacity, men jeg ved ikke om den nye adresseringsmåde ændrer det !-)

Prøv engang om den gamle måde ikke virker:

<div title="dotjem" style="top: 100px; left: 532px; height: 180px; background-color: #0000FF; filter:alpha(opacity = 75); z-index: 101;" class="kalenderblockdiv" onmouseover="this.style.zIndex='110';this.filters.alpha.opacity='100'" onmouseout="this.style.zIndex='101';this.filters.alpha.opacity='75'"></div>

-- det er den jeg bruger her:

http://roenving.users.whitehat.dk/WD5Opacity.html
Avatar billede md_craig Nybegynder
19. februar 2004 - 01:33 #11
det gør den ikke i mit tilfælde...
Avatar billede md_craig Nybegynder
19. februar 2004 - 01:36 #12
ved ikke lige hvorfor... for på din side virker det fint...
Avatar billede md_craig Nybegynder
19. februar 2004 - 01:38 #13
Jo... ved ikke lige hvorfor men der havde sneget sig et punktum ind istedet for et :
Avatar billede md_craig Nybegynder
19. februar 2004 - 01:40 #14
roenving >>

Fint... så virker det vist som det skal...
Tak for hjælpen...
Hvis du lige ligger et svar så du kan modtage point...
Avatar billede roenving Novice
19. februar 2004 - 01:41 #15
Velbekomme '-)

-- og var det så i filter:progid ... fejlen var ?-)
Avatar billede md_craig Nybegynder
19. februar 2004 - 01:46 #16
Ja... Men ville nu gerne finde løsningen med den nye noterings form...
Men hvor findes alle de Event Handlers til CSS egentlig...

For har nogle gode referencer til CSS, men hver gang jeg ønsker at lave noget med at ændre med JS så kan jeg ikke rigtig finde de tilsvarende artributter... så som:

z-index = zIndex osv...
Avatar billede skovenborg Nybegynder
19. februar 2004 - 01:49 #17
jeg plejer at finde dem her:
http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/def-index.html

Men der findes sikkert også andre steder - en god huskeregel er bare, at i stedet for bindestreg (-) så skal det næste ord bare være med stort.
Avatar billede md_craig Nybegynder
19. februar 2004 - 01:53 #18
skovenborg >>

Nu har jeg lige kigget lidt i den ikke meget... kunne ikke rigtig overskue det...
Men efter som det er på w3.org... så har det vel ikke alle de Extentions MS har lavet til CSS til IE... derfor kunne jeg godt bruge en ref med dem...

Har dog ledt og ledt inde i MSDN Biblioteket... uden held....
Avatar billede roenving Novice
19. februar 2004 - 01:53 #19
Principielt er det ikke så svært at oversætte fra css-properties til javascript, for det handler bare om at fjerne - (bindestreg) som er ulovlig i en javascript-identifier ...

Til det bruger du interCap-metoden: Alle bindestreger fjernes og det næstfølgende bogstav ændres til et stort (og den dur også den anden vej:

z-index = zIndex, border-top-style = borderTopStyle

-- og tilsvarende:

borderBottomColor = border-bottom-color, MozOpacity = -moz-opacity !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester