Thanks for discussion. The main goal is to set scrollbars (not native)
instantly when div height goes bigger than document viewport height. I
got an idea to fire an "custom" event every time when something added
into this div.

On Jun 25, 7:33 pm, kangax <[EMAIL PROTECTED]> wrote:
> It absolutely would. IE happens to be very sensitive to
> "methodized" (and "wrapped" to some extent) methods. The problem is $
> (as well as concat and $A) which does some heavy lifting in IE. Take a
> look at this 
> benchmarkhttp://yura.thinkweb2.com/bench/test/performance/dom.html
> There's a 10%-40% speed increase by simply replacing
> "element.<method>" with "Element.<method>(element)" : )
>
> - kangax
>
> On Jun 25, 12:18 pm, Matt Foster <[EMAIL PROTECTED]> wrote:
>
> > Kangax,
>
> >          True, my example method isn't rock solid, I wasn't about to
> > submit a ticket for it heh.  It would help to accommodate a string
> > value being passed, but the documentation states that it only accepts
> > a hash, this was more for proof of concept than the next big thing.  I
> > am curious about the "methodized" inefficiencies, would it be more
> > appropriate to set it as such...
>
> > ele.setStyle = Element.Methods.setStyle.wrap...
>
> > --
> > Matt Foster
> > Ajax Engineer
> > Nth Penguin, LLChttp://www.nthpenguin.com
>
> > On Jun 25, 11:40 am, kangax <[EMAIL PROTECTED]> wrote:
>
> > > Matt,
> > > I think he meant an "actual" height change, not just intercepting
> > > #setStyle call. Timer seems like an only option in that case, and
> > > you're right about performance hog. On a side note, I wouldn't
> > > recommend "wrapping" an already "methodized" #setStyle - it's very
> > > inefficient. It's also a good idea to see what "style" is, as it could
> > > be either an object or a string. Moreover, "style.height" could be 0,
> > > so "if (style.height && ... )" would not work as expected.
>
> > > - kangax
>
> > > On Jun 25, 10:47 am, Matt Foster <[EMAIL PROTECTED]> wrote:
>
> > > > Hmm this is an interesting idea, so many different ways to access that
> > > > property, and with no native property change model it seems
> > > > impossible.  My first thought was using a timer but that is going to
> > > > gum up resources.  If in your app you were savvy and used a setter
> > > > method you could implement an event that would get this done.  Using
> > > > prototype's setStyle, and ele being a valid dom reference you could do
> > > > something like this
>
> > > > ele.setStyle = ele.setStyle.wrap(function(prc, style){
> > > >         if(style.height && this.getHeight() != 
> > > > style.height.match(/^[0-9]+/
> > > > g).first()){
> > > >                 prc(style);
> > > >                 this.fire("derka:heightChange");
> > > >         }
> > > >         else
> > > >                 prc(style);
>
> > > > });
>
> > > > Which would work fine for a single element, if you wanted to observe
> > > > multiple elements height change I'd suggest iterating over a
> > > > collection of objects that needed this functionality and wrap their
> > > > setStyle methods.
>
> > > > Here is a basic working demo of this in action, be sure to have
> > > > firebug working as the debug comes across in the 
> > > > console.http://positionabsolute.net/projects/javascript/propertyChangeEvent/
>
> > > > --
> > > > Matt Foster
> > > > Ajax Engineer
> > > > Nth Penguin, LLChttp://www.nthpenguin.com
>
> > > > On Jun 24, 9:12 pm, mocambo <[EMAIL PROTECTED]> wrote:
>
> > > > > Could anybody give me any suggestions for observing
> > > > > Element.style.height change ?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to rubyonrails-spinoffs@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to