日期:2014-05-18  浏览次数:20864 次

怎样实现这样一个效果,就是页面中滚动条往下拉的时候,有一个div或者div超过页面最上端是,就让它固定在页面最上方,滚动条再往下拉时,可以恢复原样?
本帖最后由 qiuqiu_henry 于 2013-08-25 12:19:47 编辑


怎样实现这样一个效果,就是页面中滚动条往下拉的时候,

有一个div或者div超过页面最上端是,就让它固定在页面最上方,滚动条再往下拉时,可以恢复原样?

如图,文字部分一行,其实是一个table,做的一行,我想在页面滚动条往下拉时,这个页面会往上滑,当这个table的头到达页面顶端时,让其停留在页面顶端。

滚动条往上拉时,当table恢复到原始位置时,又可以继续恢复原始效果。

------解决方案--------------------
思路:绝对定位,y坐标<0 时就把它改为0. 可以用js实现。 
------解决方案--------------------
com.style(id, {position : "fixed"});
不管滚动条到哪里,div的位置始终不变
------解决方案--------------------
 var ie6 = /msie 6/i.test(navigator.userAgent);
  var tableDv = $('.table-css1');
      var st;
      tableDv.attr('otop', tableDv.offset().top); //存储原来的距离顶部的距离
      $(window).scroll(function () {
          st = Math.max(document.body.scrollTop 
------解决方案--------------------
 document.documentElement.scrollTop);
          if (st>= parseInt(tableDv.attr('otop'))) {
              if (ie6) {//IE6不支持fixed属性,所以只能靠设置position为absolute和top实现此效果
               tableDv.css({ position: 'absolute', top: st });
              }
              else if (tableDv.css('position') != 'fixed') tableDv.css({ 'position': 'fixed', top: 0 });
          } else if (tableDv.css('position') != 'static') tableDv.css({ 'position': 'static' });