Is there anyway to account for padding on the li of each list? I have
padding which seems to be throwing off the calculations.

On Mar 11, 3:36 pm, Brian <[email protected]> wrote:
> mkmanning,
>
> I want to thank you for your contribution. I was able to understand
> your example better (I just didn't get tres's version) and was able to
> come up with the following js/code combo:
>
> $(document).ready(function(){
>
>                 $('ul').each(function(i) {
>                         var ul = $(this), l = ul.children('li'), h = 
> l.height();
>                         ul.css({'height':(h*3)+'px','overflow':'hidden'});
>                         $(this).siblings('.control').addClass('closed');
>                         $(this).siblings('.control').html('<a 
> href="#">open</a>');
>                 });
>
>                 $('.control').click(function(){
>                 var ul = $(this).parent().children("ul"), l =
> ul.children('li'), h = l.height();
>                                 var me = $(this);
>
>                                 if( me.is('.closed') ) {
>                                         
> ul.parent().children("ul").animate({'height':(ul.height()>(h*5)?
> (h*5):(l.length*h))+'px'});
>                                         me.removeClass('closed');
>                                         me.addClass('open');
>                                         $(this).html('<a href="#">close</a>');
>                                 } else {
>                                         
> //ul.css({'height':(h*3)+'px','overflow':'hidden'});
>                                         
> ul.animate({'height':(h*3)+'px','overflow':'hidden'});
>                                         me.removeClass('open');
>                                         me.addClass('closed');
>                                         $(this).html('<a 
> href="#">closed</a>');
>                                 }
>                 return false;
>         });
>
> });
>
>  <div class="ec">
>     <ul>
>       <li>test 1</li>
>       <li>test 2</li>
>       <li>test 3</li>
>       <li>test 4</li>
>       <li>test 5</li>
>       <li>test 6</li>
>       <li>test 7</li>
>       <li>test 8</li>
>       <li>test 9</li>
>     </ul>
>     <div class="control"></div>
>   </div>
>   <div class="ec">
>     <ul>
>       <li>test 1</li>
>       <li>test 2</li>
>       <li>test 3</li>
>       <li>test 4</li>
>       <li>test 5</li>
>       <li>test 6</li>
>       <li>test 7</li>
>       <li>test 8</li>
>       <li>test 9</li>
>     </ul>
>     <div class="control"></div>
>   </div>
>
> On Mar 11, 2:25 pm, mkmanning <[email protected]> wrote:
>
> > And that's what I get for skipping the middle; basically the same
> > solution as tres, just less code (and it works in IE6) :)
>
> > On Mar 11, 11:21 am, mkmanning <[email protected]> wrote:
>
> > > Here's a completely different (and admittedly problematic) approach.
> > > Instead of creating new markup with a separate list, you could 'hide'
> > > the LI's over a certain number with CSS, and then animate the
> > > container. Here's a quick example:
>
> > > JS:
> > > $(document).ready(function(){
> > >         var ul = $('#myList'), l = ul.children('li'), h = l.height();
> > >         ul.css({'height':(h*5)+'px','overflow':'hidden'});
> > >         $('#myList-toggle').click(function(){
> > >                 
> > > ul.animate({'height':(ul.height()>(h*5)?(h*5):(l.length*h))+'px'});
> > >                 return false;
> > >         });
>
> > > });
>
> > > HTML:
> > > <a href="#" id="myList-toggle">Show the rest</a>
> > > <ul id="myList">
> > > <li>Item 1</li>
> > > <li>Item 2</li>
> > > <li>Item 3</li>
> > > <li>Item 4</li>
> > > <li>Item 5</li>
> > > <li>Item 6</li>
> > > <li>Item 7</li>
> > > <li>Item 8</li>
> > > <li>Item 9</li>
> > > <li>Item 10</li>
> > > </ul>
>
> > > What makes it problematic? Well, if the user resizes the text after
> > > you've calculated the height, it will be off (so if you want to
> > > account for that you'd have to include text-resize detection, which
> > > complicates the script; you'd have to decide if it's worth the extra
> > > effort).
>
> > > On Mar 11, 8:50 am, Brian <[email protected]> wrote:
>
> > > > How would one go about adapting this to be used with multiple lists on
> > > > one page.
>
> > > > I have 3-5 lists on each page and would only like to show the first 3
> > > > items of each with the ability to show the others.
>
> > > > On Feb 17, 5:16 am, mofle <[email protected]> wrote:
>
> > > > > I'm using IE6 natively on an XP machine. jQuery 1.3.1.
>
> > > > > Any solution?
>
> > > > > I don't get an error message in IE6, nothing happens when i click the
> > > > > link.
>
> > > > > Anyway, thanks for your help ;)
>
> > > > > On Feb 13, 12:09 am, tres <[email protected]> wrote:
>
> > > > > > After installing IE6, I didn't have any problems. It works just like
> > > > > > it should. I have noticed differences in the multiple IEs and the
> > > > > > actual IE, but those differences we're only when viewing the About
> > > > > > Internet Explorer in the Help menu and when printing.
>
> > > > > > Are you using ie6 in a VM, in it's original state on XP, or with
> > > > > > multiple IE's? Another question would be, which version of jQuery 
> > > > > > are
> > > > > > you using and have you cleared the ie6 cache?
>
> > > > > > Sorry that didn't work for you.
>
> > > > > > -Trey
>
> > > > > > On Feb 13, 9:56 am, tres <[email protected]> wrote:
>
> > > > > > > I'll install multiple IE's and get back to you.
>
> > > > > > > -Trey
>
> > > > > > > On Feb 12, 7:05 pm, mofle <[email protected]> wrote:
>
> > > > > > > > Thanks, you're a genius.
>
> > > > > > > > But it didn't work in IE6, where I need it.
>
> > > > > > > > Any solution?
>
> > > > > > > > On Feb 12, 12:32 am, tres <[email protected]> wrote:
>
> > > > > > > > > Oh and also Safari 3.1.2 Windows.
>
> > > > > > > > > -Trey

Reply via email to