<<liAccordianTest.html>> 
Easy enough. Check out the new example. This version also avoids "jumpy" 
animations when you click while a previous effect is still going. And also 
dynamically sizes to the contents of the LI.

Just make sure that you set the LI to have a style sheet value of 
overflow:hidden (added in my example)
The contents of the LI should be wrapped in a DIV  (i.e. <LI><DIV> contents 
</DIV></LI> )
Then do the height calculations based upon LI.childNode[0].offsetHeight



-Andrew Martinez

 -----Original Message-----
From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On Behalf Of Danial Tzadeh
Sent:   Wednesday, May 24, 2006 10:05 AM
To:     [email protected]
Subject:        Re: [Rails-spinoffs] Changing the height of LI 
elementstoachievesuchan effect?

It works great. Thank you very much Andrew. However,  only one minor
point is left: normally I wouldn't know the OriginalHeight, as the
contents are requested from the database. Is there a way to let the
script find it out? something like height: auto ?

Regards
Danial



On 5/23/06, Martinez, Andrew <[EMAIL PROTECTED]> wrote:
>
>
> Sorry for the spam.
>
> This one should work better. I mis-named a variable.
>
>  <<liAccordianTest.html>>
>
> -Andrew Martinez
>
>  -----Original Message-----
> From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On Behalf Of Martinez, 
> Andrew
> Sent:   Tuesday, May 23, 2006 10:34 AM
> To:     [email protected]
> Subject:        RE: [Rails-spinoffs] Changing the height of LI elements 
> toachievesuchan effect?
>
>  << File: liAccordianTest.html >> << File: ATT519124.txt >> Whipped this out 
> in about 10minutes. Place in the same directory as prototype and 
> scriptaculous.
>
> The only thing I don't like is that for the Effect.blindUp I override the 
> default afterFinishInternal routine which normaly does effect.element.hide() 
> and effect.element.undoclipping(). Obviously in this situation we don't want 
> the element to just hide.

>
> The code is completely uncommented (sorry) but I figure if you read it you 
> will learn/understand.
>
>
>
>  <<liAccordianTest.html>>
> -Andrew Martinez
>
>  -----Original Message-----
> From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On Behalf Of Danial 
> Tzadeh
> Sent:   Tuesday, May 23, 2006 3:55 AM
> To:     [email protected]
> Subject:        Re: [Rails-spinoffs] Changing the height of LI elements 
> toachievesuch an effect?
>
> Andrew, Tom, Jeremy;
> Thank you for your help so far. I finally came up with this code which works 
> under "normal" circumstances, however it has two flaws, as listed after the 
> code:
> [CODE]
> function toggleRows () {
> var inHeight = this.scrollHeight;
> var outHeight = 30;
> perc = (inHeight / outHeight)*100;
> percb = (outHeight/ inHeight )*100;
>
> if (this.up) {
> this.up = false;
> Effect.BlindUp(this, {transition: Effect.Transitions.sinoidal,
> scaleTo:percb, scaleFrom: 100, restoreAfterFinish: false, 
> afterFinishInternal: function(){} });
> } else {
> this.up = true;
> Effect.BlindDown(this, {transition: Effect.Transitions.sinoidal,
> scaleFrom: 100, scaleTo:perc,  restoreAfterFinish: false, 
> afterFinishInternal: function(){} } );
>         }
> }
>
> window.onload = function () {
> var cxNodeList = $('cxportfolio').getElementsByTagName('li');
> var cxnodes = $A(cxNodeList);
> cxnodes.each(function(cxnodes){
> cxnodes.onmousedown = toggleRows.bindAsEventListener(cxnodes);
>         });
>
> }
> [/CODE]
> 1.      When you click on anything inside the LI it triggers the function and 
> slides up. So, links inside LI or text selection is not possible.
> 2.      When you click on it midway, next time it contacts/expands more, 
> probably because of  this.scrollHeight being not 30 anymore at the 
> expansion/contraction time. Hence, my reference heights are not valid 
> anymore. { originalHeight: 400, originalWidth: 200 }, how to use them?
>
> Cheers,
> Danial
>
> On 5/22/06, Martinez, Andrew <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> >
> > Wouldn't this be possible?
> >
> >
> >
> > All you would have to do is create a loop over the OL or UL's children and
> > apply a parallel combination effect of blindup/blind down. Instead of
> > looping you could also use  a className attribute on the LI's and use
> > getElementByClassName. That way you don't even have to know the UL/OL
> > id/node.
> >
> >
> >
> > There is even an example on the scriptatculous wiki
> > (http://wiki.script.aculo.us/scriptaculous/show/accordion+feature
> > ).
> >
> >
> >
> > For more information look at the source or check out effect.scale; blind up
> > and blind down are just extensions of this simple effect. Since
> > blindup/blinddown are direct children of scale, you can use all of scale's
> > options during construction. You can specify the original height using the
> > scaleMode option: scaleMode: { originalHeight: 400, originalWidth: 200 }
> >
> >
> >
> >
> > -Andrew Martinez
> >
> >
> >
> >
> > -----Original Message-----
> >  From:        [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]
> > Behalf Of Tom Gregory
> >  Sent:        Saturday, May 20, 2006 10:52 PM
> >  To:  [email protected]
> >  Subject:     Re: [Rails-spinoffs] Changing the height of LI elements to
> > achievesuch an effect?
> >
> >
> >
> > Scale values are in percentage.  If you need to store a specific (hidden)
> > height for each, then calculate what that percentage is.  To get the effect
> > you asked for, however, doesn't require that sort of precision.
> >
> >
> >
> > It's a bit disingenuous to say "I'm familiar with both libraries", then
> > suggest he didn't answer your question, when in fact he did.  Any more work
> > on his part, and he's actually building it for you, something I'm sure he's
> > not paid enough for.  That said, the following snippet accomplishes the
> > effect:
> >
> >
> >
> >
> >
> > <style type="text/css">
> >
> > li {
> >
> >             overflow: hidden;
> >
> >             height: 30px;
> >
> > }
> >
> > #li1 {background-color: #bdb;}
> >
> > </style>
> >
> > <script type="text/javascript" src="js/prototype.js"></script>
> >
> > <script type="text/javascript"
> > src="js/scriptaculous.js?loadïfects"></script>
> >
> > <script type="text/javascript">
> >
> > function toggle () {
> >
> >             if (this.up) {
> >
> >                         this.up = false;
> >
> >                         Effect.BlindUp(this, {scaleTo:20, scaleFrom: 100,
> > restoreAfterFinish: false, afterFinishInternal: function(){} });
> >
> >
> >             } else {
> >
> >                         this.up = true;
> >
> >                         Effect.BlindDown(this, {scaleFrom: 100, scaleTo:500,
> >  restoreAfterFinish: false, afterFinishInternal: function(){} } );
> >
> >             }
> >
> > }
> >
> >
> >
> > window.onload = function () {
> >
> >             var listItem = $("li1");
> >
> >             listItem.onmousedown = toggle.bindAsEventListener(listItem);
> >
> > }
> >
> > </script>
> >
> >
> >
> > You may also wish to take a look at the accordion effect done w/
> > Scriptaculous at
> > http://wiki.script.aculo.us/scriptaculous/show/accordion+feature
> >
> >
> >
> > Documentation for Effect.BlindDown is at
> > http://wiki.script.aculo.us/scriptaculous/show/Effect.BlindDown,
> > although it did require looking at the source to get all of the options.
> >
> >
> >
> >
> >
> > TAG
> >
> >
> >
> > On May 20, 2006, at 6:18 PM, Danial Tzadeh wrote:
> >
> >
> >
> >
> >
> > Jeremy,
> >
> >  Thank you for your advice. I am already familiar with both libraries.
> > However, the part I am looking for is that first it is at special height
> > (say 100) and then it goes to full height upon click and back. Also it
> > renders all the LI and you don't need to address all one by one.
> >
> >  Danial
> >
> > On 5/20/06, Jeremy Kitchen <[EMAIL PROTECTED]> wrote:
> >
> >
> > On Saturday 20 May 2006 03:29, Danial Taherzadeh wrote:
> >  > Hi Everybody,
> >  >
> >  > I was wondering if there is such a work done with Scriptaculous/Prototype
> >  > before and if not how to achieve it?
> >
> >  look at Effect.BlindDown and Effect.BlindUp in scriptaculous.
> >
> >  -Jeremy
> >
> >
> >  _______________________________________________
> >  Rails-spinoffs mailing list
> >  [email protected]
> > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> >
> > Rails-spinoffs mailing list
> >
> > [email protected]
> >
> > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
> >
> >
> >
> > _______________________________________________
> > Rails-spinoffs mailing list
> > [email protected]
> > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
> >
> >
> >
> _______________________________________________
> Rails-spinoffs mailing list
> [email protected]
> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
>
>
> _______________________________________________
> Rails-spinoffs mailing list
> [email protected]
> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
>
>
>
>
_______________________________________________
Rails-spinoffs mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
Title: Accordian Test
  • Tallest
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
  • Mid
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
  • Shortest
    3
    3
    3
    3
    3
    3
_______________________________________________
Rails-spinoffs mailing list
[email protected]
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs

Reply via email to