當滑鼠滾動到指定位置,選單固定在頂部
本章節分享一段程式碼例項,它實現了滑鼠滾動的時候,開始導航選單也是一起滾動的。
當滾動到一定的尺寸,比如到達頂端的時候就可以固定。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> * { margin:0px; padding:0px; } .wrapper { width: 1000px; height: 2000px; margin-left: auto; margin-right: auto; } .header { height: 150px; } #nav { padding: 10px; position: relative; top: 0; background: black; width: 1000px; } a { display: inline-block; margin: 0 10px; *display: inline; zoom: 1; color: white; } </style> <script> function menuFixed(id) { var obj = document.getElementById(id); var _getHeight = obj.offsetTop; window.onscroll = function () { changePos(id, _getHeight); } } function changePos(id, height) { var obj = document.getElementById(id); var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; if (scrollTop < height) { obj.style.position = 'relative'; } else { obj.style.position = 'fixed'; } } window.onload = function () { menuFixed('nav'); } </script> </head> <body> <div class="wrapper"> <div class="header"></div> <div id="nav"> <a href="#">螞蟻部落一</a> <a href="#">螞蟻部落二</a> <a href="#">螞蟻部落三</a> <a href="#">螞蟻部落四</a> <a href="#">螞蟻部落五</a> </div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).function menuFixed(id) {},引數是要懸停玄素的id屬性值。
(2).var obj = document.getElementById(id),獲取對應的元素物件。
(3).var _getHeight = obj.offsetTop,獲取元素距離body元素頂端的距離。
(4).window.onscroll = function () {
changePos(id, _getHeight);
},註冊onscroll事件處理函式。
也就是當拖動滾動條的時候會呼叫changePos()方法。
(5).function changePos(id, height) {},第一個引數是元素的id屬性值,第二個引數是元素距離body頂部的距離。
(6).var obj = document.getElementById(id),獲取對應的元素物件。
(7).var scrollTop = document.documentElement.scrollTop || document.body.scrollTop,獲取向上滾動的尺寸。
(8).if (scrollTop < height) {
obj.style.position = 'relative';
} else {
obj.style.position = 'fixed';
},如果向上滾動的尺寸小於元素距離body頂端的尺寸,那麼元素的定位方式為相對定位。
否則就是fixed定位方式。
二.相關閱讀:
(1).offsetTop參閱JavaScript offsetTop一章節。
(2).onscroll事件參閱JavaScript scroll事件一章節。
(3).scrollTop參閱JavaScript scrollTop一章節。
相關文章
- 固定在頂部的導航選單
- Android ScrollView滾動到指定View的位置AndroidView
- 滾動到頂部踩坑記錄
- JavaScript 滾動條定位指定位置JavaScript
- 原生JS實現隨著滑鼠滾動到元素位置觸發對應css3動畫,簡單易用滾動監測JSCSSS3動畫
- 寫一個佈局,當頁面滾動一定高時,導航始終固定在頂部,反之恢復原位
- div有滾動條 返回頂部
- 新增一行,滾動到最左側,滾動到當前行,定位到當前行
- 部落格園裝飾——(二)滾動到頁面頂部或底部
- 三種方式實現平滑滾動頁面到頂部的功能
- RecyclerView滾動位置,滾動速度設定View
- jQuery點選平滑跳轉到頁面指定位置jQuery
- 簡單實現點選回到頂部
- html/css 滾動到元素位置,顯示載入動畫HTMLCSS動畫
- 選單元素溢位時,自動滾動到可視區域
- 【介面設計建議】向下滾動頁面時,建議頂部選單仍然停留在頁面頂部,方便使用者來回切換
- 下拉選單框和滾動條
- 滑鼠滑輪上下滾動設定方法_怎樣設定滑鼠上下滾動
- 點選回到頂部
- vue js 獲取滾動距離 以及 返回頂部按鈕VueJS
- 影片直播網站原始碼,flutter 頂部滾動欄頁面網站原始碼Flutter
- div拖動範圍限定在指定元素內
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- 直播帶貨原始碼,vue中點選按鈕平滑滾動到頁面某個div位置原始碼Vue
- git遠端分支回滾到指定版本Git
- Dcat-admin重寫頂部右側下拉選單
- Android開發:RecyclerView平滑流暢的滑動到指定位置AndroidView
- 使用js控制滾動條的位置JS
- Flutter中scroll_to_index 實現列表滾動到指定索引的庫FlutterIndex索引
- Laravel 框架中某個狀態的資料固定在列表頂部Laravel框架
- 簡單版—返回頂部
- 前端筆記之JavaScript(十一)event&BOM&滑鼠/盒子位置&拖拽/滾輪前端筆記JavaScript
- JQuery4:滑鼠事件和滾動事件jQuery事件
- react記錄頁面的滾動條位置React
- 直播軟體搭建,vue3 頁面回到頂部(平緩滾動效果)Vue
- 如何讓VB6程式碼編輯器垂直滾動條隨滑鼠滾輪滾動
- 直播軟體搭建,點選按鈕自動回到頂部
- 移動端使用scrollTop方法點選展開內容使該區域在滾動到瀏覽器最頂端瀏覽器