为了账号安全,请及时绑定邮箱和手机立即绑定

关于判断div是否到了顶部问题

关于判断div是否到了顶部问题

千巷猫影 2018-11-13 17:15:05
下面是一段判断div是否到达屏幕顶部,如果到了之后就fixed在顶部。问题:1.当div在顶部fixed住时,继续滚动会出现抖动现象2.有时候滚动时突然消失了,发现是scrollTop小于elementOffset导致得,但不知道怎么会出现得。(“anchorHead”是div得class名)$(window).on('scroll', function() {      var scrollTop = $(window).scrollTop();      var elementOffset = $('.anchorHead').offset().top;      // distance = (elementOffset - scrollTop);      console.log("e:"+elementOffset);      console.log("s:"+scrollTop);      $(".anchorHead").css('position',((scrollTop) >== elementOffset) ? 'fixed' : 'static').css("width","100%");       $(".anchorHead").css('top',((scrollTop) >= elementOffset) ? '0' : '');      $(".anchorHead").css('z-index',((scrollTop) > elementOffset) ? '9999' : '');  });
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

不要直接用css去控制它的位置, 用类名.

`
css:
div { 默认情况下就用文档流, 不需要 absolute } 
div.fixed { position:fixed; top:0; left:0; }

xxx.onscroll = function() {
if ( >= 顶部 ) { div.addClass('fixed'); }
else { < 顶部 ) { div.removeClass('fixed'); }; 
}
`

原理是 重复的class赋值不会引起渲染, 更不存在抖动
重复的改css则会立即渲染, 体现差异


查看完整回答
反对 回复 2018-12-30
  • 1 回答
  • 0 关注
  • 755 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号