Mercurial > defr > drupal > core
comparison misc/tableheader.js @ 11:589fb7c02327 6.5
Drupal 6.5
| author | Franck Deroche <webmaster@defr.org> |
|---|---|
| date | Tue, 23 Dec 2008 14:32:19 +0100 |
| parents | c1f4ac30525a |
| children |
comparison
equal
deleted
inserted
replaced
| 10:6f15c9d74937 | 11:589fb7c02327 |
|---|---|
| 1 // $Id: tableheader.js,v 1.16 2008/01/30 10:17:39 goba Exp $ | 1 // $Id: tableheader.js,v 1.16.2.1 2008/10/01 23:30:36 goba Exp $ |
| 2 | 2 |
| 3 Drupal.tableHeaderDoScroll = function() { | 3 Drupal.tableHeaderDoScroll = function() { |
| 4 if (typeof(Drupal.tableHeaderOnScroll)=='function') { | 4 if (typeof(Drupal.tableHeaderOnScroll)=='function') { |
| 5 Drupal.tableHeaderOnScroll(); | 5 Drupal.tableHeaderOnScroll(); |
| 6 } | 6 } |
| 33 | 33 |
| 34 $(table).addClass('sticky-table'); | 34 $(table).addClass('sticky-table'); |
| 35 $(this).addClass('tableHeader-processed'); | 35 $(this).addClass('tableHeader-processed'); |
| 36 }); | 36 }); |
| 37 | 37 |
| 38 // Define the anchor holding var. | |
| 39 var prevAnchor = ''; | |
| 40 | |
| 38 // Track positioning and visibility. | 41 // Track positioning and visibility. |
| 39 function tracker(e) { | 42 function tracker(e) { |
| 40 // Save positioning data. | 43 // Save positioning data. |
| 41 var viewHeight = document.documentElement.scrollHeight || document.body.scrollHeight; | 44 var viewHeight = document.documentElement.scrollHeight || document.body.scrollHeight; |
| 42 if (e.viewHeight != viewHeight) { | 45 if (e.viewHeight != viewHeight) { |
| 60 // Track horizontal positioning relative to the viewport and set visibility. | 63 // Track horizontal positioning relative to the viewport and set visibility. |
| 61 var hScroll = document.documentElement.scrollLeft || document.body.scrollLeft; | 64 var hScroll = document.documentElement.scrollLeft || document.body.scrollLeft; |
| 62 var vOffset = (document.documentElement.scrollTop || document.body.scrollTop) - e.vPosition; | 65 var vOffset = (document.documentElement.scrollTop || document.body.scrollTop) - e.vPosition; |
| 63 var visState = (vOffset > 0 && vOffset < e.vLength) ? 'visible' : 'hidden'; | 66 var visState = (vOffset > 0 && vOffset < e.vLength) ? 'visible' : 'hidden'; |
| 64 $(e).css({left: -hScroll + e.hPosition +'px', visibility: visState}); | 67 $(e).css({left: -hScroll + e.hPosition +'px', visibility: visState}); |
| 68 | |
| 69 // Check the previous anchor to see if we need to scroll to make room for the header. | |
| 70 // Get the height of the header table and scroll up that amount. | |
| 71 if (prevAnchor != location.hash) { | |
| 72 if (location.hash != '') { | |
| 73 var scrollLocation = $('td'+ location.hash).offset().top - $(e).height(); | |
| 74 $('body, html').scrollTop(scrollLocation); | |
| 75 } | |
| 76 prevAnchor = location.hash; | |
| 77 } | |
| 65 } | 78 } |
| 66 | 79 |
| 67 // Only attach to scrollbars once, even if Drupal.attachBehaviors is called | 80 // Only attach to scrollbars once, even if Drupal.attachBehaviors is called |
| 68 // multiple times. | 81 // multiple times. |
| 69 if (!$('body').hasClass('tableHeader-processed')) { | 82 if (!$('body').hasClass('tableHeader-processed')) { |
