Scriptaculous Effect.Move átírás
Üdv!
Belefutottam egy igen érdekes bugba, természetesen explorer, mi más.
Effect.Move-ot használva azon elemek megjelenítésekor, amik eredetileg nem látszottak az oldalon (overflow-val voltak maszkolva) az oldalon mozgatva a kurzort az elemek villognak: hol teljesen eltűnnek, hol megjelennek.
Kíváncsiságból kiróbáltam nem Effect.Move-val, hanem a margin-top értéket változtatva mozgatni a cuccot, és lőn: a gond sehol.
Gondoltam beleírom a scriptaculous-ba magamnak ez, mint effektet, a következő kóddal:Azonban a várt eredmény elmaradt: ettől az IE teljesen és tökélesen megállt. Először annyit mondott, hogy 'Effect not defined', aztán hogy 'Kezeletlen kivétel történt'.
Az egész napom erre a dögre ment rá, kérek valakit, akinek van ötlete, segítsen.
Köszönöm,
Molnár Péter
■ Belefutottam egy igen érdekes bugba, természetesen explorer, mi más.
Effect.Move-ot használva azon elemek megjelenítésekor, amik eredetileg nem látszottak az oldalon (overflow-val voltak maszkolva) az oldalon mozgatva a kurzort az elemek villognak: hol teljesen eltűnnek, hol megjelennek.
Kíváncsiságból kiróbáltam nem Effect.Move-val, hanem a margin-top értéket változtatva mozgatni a cuccot, és lőn: a gond sehol.
Gondoltam beleírom a scriptaculous-ba magamnak ez, mint effektet, a következő kóddal:
Effect.MoveMargin = Class.create(Effect.Base, {
initialize: function(element) {
this.element = $(element);
if (!this.element) throw(Effect._elementDoesNotExistError);
var options = Object.extend({
x: 0,
y: 0,
}, arguments[1] || { });
this.start(options);
},
setup: function() {
this.originalLeft = parseFloat(this.element.getStyle('margin-left') || '0');
this.originalTop = parseFloat(this.element.getStyle('margin-top') || '0');
},
update: function(position) {
this.element.setStyle({
marginLeft: (this.options.x * position + this.originalLeft).round() + 'px',
marginTop: (this.options.y * position + this.originalTop).round() + 'px'
});
}
});
Az egész napom erre a dögre ment rá, kérek valakit, akinek van ötlete, segítsen.
Köszönöm,
Molnár Péter
hogy az a jó....
Elnézést, hogy emiatt topicot nyitottam.
Ebbe szerintem mindenki
És nem kell lerágni a körmöd, az olyan esetekre, amikor nincs érdemleges debug információ (CSS-problémáknál szok még előfordulni), akkor lehet manuálisan lokalizálni, bájtra pontosan. Szépen elkezded kivagdosni a kód egy nagy részét, azaz visszamész hiba nélküli (persze nem is funkcionáló) állapotra, és darabonként rakod vissza az eredeti kódot.
JSLint