[jQuery] Re: Trying to grasp basics of scrolling a TBODY

2008-11-05 Thread Kenneth Downs

Jeffrey Kretz wrote:


Ken,

 


Do you have a test case page online somewhere I could take a look at?

 

I've successfully implemented a scrollTo-type function using offsets 
and rows, and if I can see the page you're working with I might be 
able to suggest something.




Jeffrey, thanks but I actually figured it out.  I made up a simple test, 
which I'll be happy to post probably tomorrow.


What I realized is that there were a few more steps than I thought.  I 
had figured that a TR would get an offset() automatically with respect 
to its TBODY.  Instead I found I had to get the offset()  (or position, 
I forget which one) for several items, and do a little arithmetic to get 
the position of the TR relative to its TBODY.  Once I figured that out 
the remaining arithmetic was fairly straightforward.


Also I realized I had to take into account the height of the TR, 
otherwise I would scroll to the top of it and it would still be invisible :)


 


JK

 

*From:* jquery-en@googlegroups.com [mailto:[EMAIL PROTECTED] 
*On Behalf Of *Kenneth Downs

*Sent:* Sunday, November 02, 2008 3:58 PM
*To:* jquery-en@googlegroups.com
*Subject:* [jQuery] Re: Trying to grasp basics of scrolling a TBODY

 


Dan Switzer wrote:

Ken,

 


I'm trying to grasp the basics of scrolling to a particular row in a
TABLE.

Let's say you've got a TABLE, with a TBODY that has a fixed height and
overflow: scroll.

It appears I ought to be able to use core functions like offset() and
scrollTop() to work out where a row is and scroll the TBODY to that
position, but lots of trial and error has left me lost on why these
things don't seem to work as I expect.

The particular case I am looking at involves the user using arrow keys
to navigate up and down.  Its easy enough to use .next() to highlight
the next row, but if a user keeps doing it, and the next row is below
the viewable scroll region, I need to be able to slide up the display
to show the highlighted row.

This is an educational venture, not a practical one, I'd like to
understand it myself, not find and use a plugin that does it already.


Scrolling with the TBODY tag is spotty. IE6 doesn't support it at 
all--you need to place your table in a DIV that has a fixed height and 
overflow set to scroll.



Thankfully I have no interest in IE 6 :)

I currently have the DIV system you describe.  My best construction of 
why it does not work is this:


1) There is a div that represents TBODY.  It has clear:both as a 
CSS row

2) Each row is a div inside of the TBODY div
3) Each cells must be a div, firefox does not support widths on 
spans (don't know about IE, doesn't matter if firefox won't do it)

4) The cells must be float: left
5) ...and at the end I get .offset() returning meaningless numbers for 
the row divs.  All divs in the body return 0 as the offset.
6) For good measure, the .scrollTo() extension does not work at all on 
this simulated TABLE, which I suspect is related to these bogus numbers.
7) I *think* the clear:both on the tbody div is causing this, but I 
really don't know


So I monkeyed up a TABLE by hand and found all of the .offset() and 
related functions appear to be giving real results, I just can't quite 
connect the dots on how to put it all together.


FWIW, the only reason I used the entire simulated TABLE was because IE 
7 does not support onclick() on a TR.  But I can just as well put the 
onclick on TD elements and get where I need to go using a TABLE, if 
only I could connect the dots on the scrolling stuff.




I'm not sure what browsers you're targeting, but if IE6 was one you 
were having problems with, this is why.


-Dan




--
Kenneth Downs
Secure Data Software, Inc.
www.secdat.com http://www.secdat.comwww.andromeda-project.org 
http://www.andromeda-project.org
631-689-7200   Fax: 631-689-0527
cell: 631-379-0010



--
Kenneth Downs
Secure Data Software, Inc.
www.secdat.comwww.andromeda-project.org
631-689-7200   Fax: 631-689-0527
cell: 631-379-0010



[jQuery] Re: Trying to grasp basics of scrolling a TBODY

2008-11-02 Thread Kenneth Downs

Dan Switzer wrote:

Ken,


I'm trying to grasp the basics of scrolling to a particular row in a
TABLE.

Let's say you've got a TABLE, with a TBODY that has a fixed height and
overflow: scroll.

It appears I ought to be able to use core functions like offset() and
scrollTop() to work out where a row is and scroll the TBODY to that
position, but lots of trial and error has left me lost on why these
things don't seem to work as I expect.

The particular case I am looking at involves the user using arrow keys
to navigate up and down.  Its easy enough to use .next() to highlight
the next row, but if a user keeps doing it, and the next row is below
the viewable scroll region, I need to be able to slide up the display
to show the highlighted row.

This is an educational venture, not a practical one, I'd like to
understand it myself, not find and use a plugin that does it already.


Scrolling with the TBODY tag is spotty. IE6 doesn't support it at 
all--you need to place your table in a DIV that has a fixed height and 
overflow set to scroll.


Thankfully I have no interest in IE 6 :)

I currently have the DIV system you describe.  My best construction of 
why it does not work is this:


1) There is a div that represents TBODY.  It has clear:both as a CSS row
2) Each row is a div inside of the TBODY div
3) Each cells must be a div, firefox does not support widths on spans 
(don't know about IE, doesn't matter if firefox won't do it)

4) The cells must be float: left
5) ...and at the end I get .offset() returning meaningless numbers for 
the row divs.  All divs in the body return 0 as the offset.
6) For good measure, the .scrollTo() extension does not work at all on 
this simulated TABLE, which I suspect is related to these bogus numbers.
7) I *think* the clear:both on the tbody div is causing this, but I 
really don't know


So I monkeyed up a TABLE by hand and found all of the .offset() and 
related functions appear to be giving real results, I just can't quite 
connect the dots on how to put it all together.


FWIW, the only reason I used the entire simulated TABLE was because IE 7 
does not support onclick() on a TR.  But I can just as well put the 
onclick on TD elements and get where I need to go using a TABLE, if only 
I could connect the dots on the scrolling stuff.




I'm not sure what browsers you're targeting, but if IE6 was one you 
were having problems with, this is why.


-Dan



--
Kenneth Downs
Secure Data Software, Inc.
www.secdat.comwww.andromeda-project.org
631-689-7200   Fax: 631-689-0527
cell: 631-379-0010