私のアプリケーションでは、現在のスクロール位置に比例してleft
CSS属性を更新するだけで済みました。
<script language="javascript" src="jquery-1.4.3.js"></script>
<script language="javascript" src="jquery.inview.js"></script>
<script type="text/javascript">
(function($){
$(document).ready(function($){
// Record initial positions of all elements.
$('<pattern>').each(function(i){
var el = $(this);
var offset = el.offset();
el.attr('_left', offset.left);
el.attr('_top', offset.top);
});
// Detect when elements become visible.
$('<pattern>').bind('inview', function (event, visible) {
var el = $(this);
if (visible == true){
el.addClass('_fixed_label');
} else {
el.removeClass('_fixed_label');
}
});
// Update elements when the scroll position changes.
$(window).scroll(function(event) {
var x = $(this).scrollLeft();
$('<pattern>._fixed_label').each(function(i){
var el = $(this);
el.css('left', x);
});
});
});
})(jQuery);
</script>