css sticky定位,介绍css3中position-sticky

  css sticky定位,介绍css3中position:sticky

  

运用场景:

  新要求有一个项目做问卷调查,必然会涉及到很多题目,需要在一个题目下给多人打分。手机滑动会出现这种现象,标了题就忘了。所以计算好一定距离后,就需要定位标题了。相对于顶部要固定的区域滑动标题,方便评分。

  :

解决思路:

   1.首先想到的是,固定布局是指当达到一定距离时,页眉固定在屏幕顶部。(可以实现,但是过程不是很顺利)

  2 .粘性布局

  Sticky可以很好的满足这个要求,但是要考虑兼容性(即兼容性)。

  :

sticky实现思路:

   1.首先,您需要记录滑块的位置并监听滚动事件:

  window . addevent listener( scroll ,this . handle scroll);请记住在销毁组件之前,在destroyed(){ window . removeeventlistener( scroll ,this.handle scroll)之前移除此事件;}2.计算每个问题的标题距离屏幕顶部的高度,并形成一个数组。

  //记得每道题设置一个ref。我的ref是formdata.questions的每个问题ID的ID ID-vue缩写-div:ref= question . ID v-for=(question,index ):key= index //为了防止混乱,我还做了一个sort- for (let key in this。$refs) { for(让idx在这。$ refs[key]){ this . toppositionarr . push(this。$refs[key][idx]。offsetTop);} } this.topPositionArr=[.新设置(this . toppositionarr)];this . toppositionarrtoppositionarr=this . toppositionarr . sort((a,b)={ return a-b;} );3.通过滑动将监控的距离与获取的标题进行比较,并选择定位的标题。

  //兼容不同的浏览器。不同的浏览器有不同的接受方式。handle scroll(){ this . scroll top=document . document element . scroll top?document . document element . scroll top:document . body . scroll top;let scroll top=this . scroll top;//第一个问题的scrollTop不变,从第二个问题的scrollTop变为this . toppositionarr . foreach((item,idx)={ if(idx 1){ this . scroll top=scroll top 220;}//为什么这么做?因为iE不支持粘性布局,所以我们需要一个插件来帮助使用if(this . scroll top item){ let elements=document . getelementbyid(` sticky $ { idx } `);stickyfill.add(元素);}});} 4.IE的兼容性

  因为IE不支持粘性布局,我们需要轮子粘性填充。

  npm安装粘性填充纱并添加粘性填充

  您需要给头部的div标签一个动态id来表示惟一性。

  div:id= ` sticky $ { question . index } class= sticky 单个文件简介

  在需要的页面中引入:scriptsrc= path/to/sticky fill . min . js /script var sticky fill=require( sticky fill );var sticky fill=sticky fill();Js文件:

  详见上述3le elements=document . getelementbyid(` sticky $ { idx } `);stickyfill.add(元素);以上可以完美实现~ ~ ~

  PS:如果只需要兼容谷歌,就不需要这么麻烦了。你可以直接使用stiky布局,你不再需要轮子-

  可以参考https://www . Zhang xinxu . com/WordPress/2018/12/CSS-position-sticky/许昕的文章。

  

最后效果图:

  就是这样。本文介绍了如何将标题放置在css粘性布局的顶部。更多相关css粘性内容,请搜索以前的文章或继续浏览下面的相关文章。希望你以后能支持我!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: