« 1 2
Autor Zpráva
Witiko
Profil
Chamurappi:
V Exploreru přeci není nutné pitvat cssText.
Nejde mi jen o změny ve filtru, jde mi i o jeho odstranění. Je-li to možné přes kolekci filtrů nevím.

Viz. tvůj post: http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=110653#3
Chamurappi
Profil
Reaguji na Witika:
Aha, tak to jo. Na to jsem úplně zapomněl :-)
Ale stejně — při odstranění průhlednosti by šlo vyhodit filtr z cssTextu (to zvládne jeden regulární výraz), na změnu parametru opacity ovšem stačí něco méně krkolomného.
Witiko
Profil
Chamurappi:
Ano, regulární výrazy. Metla na mě, popel si na hlavu sypu. :)
Jinak na změnu opacity by mohl být postup jiný přímo přes právě tu kolekci filtrů, podívám se na to.
Witiko
Profil
Ok, tohle už snad vypadá co do krkolomnosti lépe:

/* Funkce pro MSIE */
function setOpacity(element, opacity) {
  if(typeof element != "object" || typeof opacity != "number" || opacity < 0 || opacity > 100 || typeof element.style != "object" || element.style.cssText == void(0)) return false;
  if(/progid:\s*DXImageTransform\.Microsoft\.Alpha\(opacity\s*=\s*\d*\.*\d*\s*\)/i.test(element.style.filter)) {
    if(opacity < 100) {
      element.style.filter = element.style.filter.replace(/(progid:\s*DXImageTransform\.Microsoft\.Alpha\(opacity\s*=\s*)\d*\.*\d*(\s*\))/i,"$1" + opacity + "$2");
    } else {
      element.style.cssText = element.style.cssText.replace(/(filter:\s*)*progid:\s*DXImageTransform\.Microsoft\.Alpha\(opacity\s*=\s*\d*\.*\d*\s*\)/ig,"");
    }
  } else if(opacity < 100) {
    element.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity = " + opacity + ")";
  }
  return true;
}


/* Funkce pro ostatní browsery */
function setOpacity(element, opacity) {
  if(typeof element != "object" || typeof opacity != "number" || opacity < 0 || opacity > 100 || typeof element.style != "object") return false;
  element.style.opacity = opacity==100?"":opacity / 100;
  return true;
}
« 1 2

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0