实战IT培训机构_黄色激情网站_IT培训班选大学生IT技术培训中心_黄色激情视频网站_中公优就业

400-650-7353
您所在的位置:首頁 > IT干貨資料 > web前端 > 【Web前端基礎知識】如何使用js實現固釘效果

【Web前端基礎知識】如何使用js實現固釘效果

  • 發布: Web前端培訓
  • 來源:Web前端干貨資料
  • 2021-03-22 16:29:11
  • 閱讀()
  • 分享
  • 手機端入口

當內容區域比較長,需要滾動頁面時,部分內容需要在滾動范圍內的頂部始終展現,這種效果就稱之為固釘。那我們該如何使用js來實現這種結果呢。

在實現該效果之前,我們需要掌握body位置屬性中offset系列和scroll系列。

其關系如下圖所示:

offset系列中常用的屬性為:

1. 獲取元素的占位寬高

① 元素.offsetWidth:獲取元素的占位寬—width+padding+border

② 元素.offsetHeight:獲取元素的占位高—height+padding+border

2. 獲取元素在頁面中的位置

① 元素.offsetTop:當前元素的頂部,到定位父元素的距離,沒有定位父元素,到 body 的距離;

② 元素.offsetLeft:當前元素的左邊,到定位父元素的距離,沒有定位父元素,到 body 的距離;

scroll系列中常用的為:

1. 元素的滾動(當該元素內部出現了滾動條)

① 元素.scrollTop:元素被卷去的高;

② 元素.scrollLeft:元素被卷去的寬;

③ 元素.scrollWidth:獲取元素實際內容寬;

④ 元素.scrollHeight:獲取元素實際內容高;

2. 屏幕的滾動距離:

document.documentElement.scrollTop:獲取頁面被卷去的高。

為了兼容ie一般為則需要用 document.body 代替 document.documentElement。

那之后我們來分析我們要實現的效果,例如在該圖示中黑色矩形代表窗口,紅色矩形代表整個html頁面,在我們滾動頁面時當黃色塊走到窗口頂部時讓其停留在窗口頂部。

接下來頁面滾動時我們需要知道當前頁面的滾動距離即document.documentElement

.scrollTop,和黃色塊距離頁面頂部的距離即offsetTop,在滾動的過程中比較這兩個值的大小,當頁面被卷去的高度 >= 黃色塊距離頁面頂部的距離時,黃色塊應該定在窗口頂端,這時應該給黃色塊添加一個固定定位。當條件不滿足時,再將其固定定位取消掉。

代碼為:

  1. <style> 
  2. div{ 
  3.         width: 100%; 
  4.         height: 150px; 
  5.         background: tomato; 
  6.         margin-bottom: 10px; 
  7.     } 
  8.     #con{ 
  9.         background: yellow; 
  10.     } 
  11.     .active{ 
  12.         position: fixed; 
  13.         top:0; 
  14.         left: 0; 
  15.     } 
  16. </style> 
  17. <body> 
  18.     <div></div> 
  19.     <div></div> 
  20.     <div></div> 
  21.     <div></div> 
  22.     <div id="con"></div> 
  23.     <div></div> 
  24.     <div></div> 
  25.     <div></div> 
  26.     <div></div> 
  27.     <div></div> 
  28.     <div></div> 
  29. </body> 
  30. <script> 
  31.     var oCon = document.getElementById('con'); 
  32.     // 需要先在外面存儲一下這個值,因為加了定位之后會變為獲取到定位父元素的距離,為0 
  33.     var offsetT = oCon.offsetTop; 
  34. // 當頁面被卷去的高度 >= 紅盒子在頁面中的位置時,紅盒子就定在頂部 
  35. // 添加滾動事件 
  36.     window.onscroll = function(){ 
  37.         var scrollH = document.documentElement.scrollTop || document.body.scrollTop; 
  38.         if(scrollH >= offsetT){ 
  39.              oCon.className = 'active'
  40.         }else{ 
  41.              oCon.className = ''
  42.          } 
  43.     } 
  44. </script> 

需要注意的是:在頁面滾動之前我們要先獲取黃色塊距離頁面頂部的距離,因為offsetTop的值在元素沒有定位的情況下,獲取的才是其在頁面中的位置。當加了固定定位之后該值會為0,之后條件判斷永遠為真,則取消固定定位時無效。

文章“【Web前端基礎知識】如何使用js實現固釘效果”已幫助

>>本文地址:http://m.jecan.cn/zhuanye/2021/68022.html

THE END  

聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯網營銷互聯網營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯網嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網頁設計網頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發VR/AR
  • 網絡安全網絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發智能機器人
 

快速通道fast track

近期開班時間TIME

主站蜘蛛池模板: 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 西门子气候补偿器,锅炉气候补偿器-陕西沃信机电工程有限公司 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 微动开关厂家-东莞市德沃电子科技有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 模型公司_模型制作_沙盘模型报价-中国模型网 | 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 四川实木门_成都实木门 - 蓬溪聚成门业有限公司 | 蜜蜂职场文库_职场求职面试实用的范文资料大全 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 压缩空气检测_气体_水质找上海京工-服务专业、价格合理 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 精密模具加工制造 - 富东懿 | 渣油泵,KCB齿轮泵,不锈钢齿轮泵,重油泵,煤焦油泵,泊头市泰邦泵阀制造有限公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 |