Thanks for your response. It wasn't quite what I was looking for, but it got me pointed in the right direction.
http://www.autofusion.com/developmen...pare_divs.html
Code:
<script type="text/javascript" src="http://yui.yahooapis.com/combo?2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script>
(function(){
var initTest = function(){
var oColumnsContainer = document.getElementById("compare_ColumnsContainer");
var oFauxScroll = document.getElementById("compare_FauxScroll");
var oScrollContainer = document.getElementById("compare_ScrollContainer");
var oFauxScrollContainer = document.getElementById("compare_FauxScrollContainer");
var oColumns = YAHOO.util.Dom.getElementsByClassName("compare_Column", "div", oColumnsContainer);
var oEqualWidths = [oColumnsContainer, oFauxScroll];
YAHOO.util.Dom.setStyle(oEqualWidths, "width", ((oColumns.length * 186) + "px"));
YAHOO.util.Event.addListener(oScrollContainer, "scroll", function(e){
oFauxScrollContainer.scrollLeft = oScrollContainer.scrollLeft;
});
YAHOO.util.Event.addListener(oFauxScrollContainer, "scroll", function(e){
oScrollContainer.scrollLeft = oFauxScrollContainer.scrollLeft;
});
}
YAHOO.util.Event.onDOMReady(initTest);
})();
</script>
Working great in FF2, IE6, and Opera. A little jaggy in Safari, but it works. It would have been preferable to replace the 186 with style.width or offsetWidth, but Safari gets both wrong most of the time. I abandoned the table for divs since I had too many headaches with the tables, and the data is column-based anyway.
Hi Googlers! The missing puzzle pieces ended up being element.onscroll and element.scrollLeft:
https://developer.mozilla.org/en/DOM/element.onscroll
https://developer.mozilla.org/En/DOM/Element.scrollLeft
Bookmarks