# Opacity funktioniert nicht im Firefox!?



## nitrobesim (7. Mai 2005)

Hi Leute, ich hab folgenden Code

```
<SCRIPT language=JavaScript>
	   function pick(obj) {
       obj.filters.alpha.opacity=100;
       obj.filters.gray.enabled=false;
       }
       function unpick(obj) {
       obj.filters.alpha.opacity=100;
       obj.filters.gray.enabled=true;
       }
</SCRIPT>
```
 .
Aber dieser funktioniert im Firefox irgendwie nicht. Im I.E. dafür ja. Was kann ich dagegen tun?


----------



## Quaese (7. Mai 2005)

Hi,

die Eigenschaft für Mozillas heisst *MozOpacity*. Im Gegensatz zur filter-Eigenschaft des
IEs ist der Wertebereich nicht von 0 bis 100, sondern von 0.00 bis 1.00.

Die Anweisung für den IE

```
obj.filters.alpha.opacity=100;
```
würde für Mozillas wie folgt lauten:

```
obj.MozOpacity=1.00;
```
Ciao
Quaese


----------



## nitrobesim (7. Mai 2005)

Muss ich dann


```
obj.filters.gray.enabled=false;
```
 auch umbennen?


----------



## Quaese (8. Mai 2005)

Hi,

ob es einen entsprechenden Filter zu *gray* für Mozillas gibt, weiss ich nicht. Aber du kannst ja die 
Änderung über die Transparent des jeweiligen Elements anzeigen. Dazu musst du über eine 
Browserweiche entscheiden, ob es sich um einen IE oder eine Mozilla-Engine handelt.

Eine mögliche Variante wäre:

```
// IE identifizieren
var blnIE = document.all&&!window.opera;
// Mozilla identifizieren
var strAgent = navigator.userAgent.toLowerCase();
var blnNS  =((strAgent.indexOf('mozilla')!=-1) && ((strAgent.indexOf('spoofer')==-1) && (strAgent.indexOf('compatible') == -1)));

function pick(strObj) {
  obj = (blnIE) ? document.all[strObj] : document.getElementById(strObj) ;
  if(blnIE){
    obj.style.filter = "alpha(opacity=50) gray()";
  }else if(blnNS){
    obj.style.MozOpacity = 0.50;
  }
}

function unpick(strObj) {
  obj = (blnIE) ? document.all[strObj] : document.getElementById(strObj) ;
  if(blnIE){
    obj.style.filter = "alpha(opacity=100)";
  }else if(blnNS){
  obj.style.MozOpacity = 1.00;
  }
}
```
Als Parameter wird der Funktion die ID des Elements übergeben, das manipuliert werden soll.

```
<img onclick="pick('test');" id="test" src="bild.gif" />
```
Vielleicht hilft dir das weiter.

Ciao
Quaese


----------



## nitrobesim (8. Mai 2005)

Ich möchte es aber für beide Browser machen und es ist ja nur, wenn man mit der Maus über den Button geht, dass er sich dann anders färbt.


----------



## Sven Mintel (8. Mai 2005)

nitrobesim hat gesagt.:
			
		

> Ich möchte es aber für beide Browser machen


Dann musst du dir etwas anderes einfallen lassen....den Graufilter hat nur der  IE.
Wenn du stattdessen z.B. eine Bildaustauschfunktion verwendest(mit jeweils Farb-und S/W-Version des gleichen Bildes), ginge dies z.B.


----------



## nitrobesim (8. Mai 2005)

Und steht fest, ob Firefox das in naher Zukunft irgendwie auch mitsich tragen wird? Weil ich den Effekt schon sehr sehr gern behalten möchte, wie er ist.


----------



## con-f-use (8. Mai 2005)

Steht jedenfalls nicht auf der Projektliste vermekrt, aslo wirst du wohl noch eine *gaaaanze *Weile drauf warten dürfen, falls überhaupt.

 Ich glaube, was du möchtest fällt nicht unbedingt mit dem zusammen, was die Mozilla-Entwickler möchten.


----------

