国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS實現table表格固定表頭且表頭隨橫向滾動而滾動

2024-05-06 15:46:19
字體:
來源:轉載
供稿:網友

JS的開發過程中,如果有大量的數據,需要進行比較和查看,我們一般需要固定頭并啟動一些列,那么錯新技術頻道小編就一起來了解JS實現table表格固定表頭且表頭隨橫向滾動而滾動的介紹吧!

先看一張效果圖

這里寫圖片描述

思路:

1、頭部用一個table并用一個div包裹著, 表格的具體內容用一個table

2、頭部外面的div用positon: relative相對定位

3、獲取整個表格的高度

4、獲取表格的dom(或者包裹著表格的dom)距離頁面頂部的距離 offsetTop

5、滾動的零界點的距離 表格的高度+表格距離頁面頂部的距離 如果滾動超過這個 就讓頭部的top值歸0或原封不動

這里寫圖片描述

當然還有很多可以優化的地方 我只是展示一個小思路 嘿嘿嘿

題外話 為啥用紅色表頭 因為顯眼哇 哈哈

JS代碼

/**     * 最重要的一點是頭和身體是兩個table 然后定位用relative 然后通過滾動來計算     * */      function FixedHead (){        if( !(this instanceof FixedHead) ){          return new FixedHead()        };        this.$dom = $('.dataTables_scrollHead'); // 表頭外層dom        this.offsetTop = this.$dom.offset().top; // 表頭外層dom距離頂部的高度        this.parents = this.$dom.parents('.dataTables_scroll'); // 表頭外層dom最外面的盒子(包裹著table的盒子)        this.outBoxHeight = this.parents.height(); // 表頭外層dom最外面的盒子(包裹著table的盒子)的高度        this.maxHeight = this.offsetTop + this.outBoxHeight; // 滾動的零界點 最多能滾動到哪里        this.scroll();      }      FixedHead.prototype = {        constructor: FixedHead,        scroll: function(){          var that = this;          $(window).scroll(function(){            var scrollTop = $(this).scrollTop();            if((scrollTop > that.offsetTop) && (scrollTop < that.maxHeight)){              that.$dom.css('top', (scrollTop - that.offsetTop + 50)+'px') // 這個50是因為我的頭部導航固定在頂部 高是50 所以要加上            }else {              var topCss = that.$dom.css('top');              if(topCss === '0px' || topCss === 'auto'){              }else {                that.$dom.css('top', '0px')              }            }          })        }      }

綜上所分析的關于JS實現table表格固定表頭且表頭隨橫向滾動而滾動,大家都了解了嗎?希望對想要了解這方面信息的有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 德阳市| 德州市| 浦城县| 平南县| 佛冈县| 乌兰察布市| 湖口县| 滨海县| 肇州县| 株洲市| 巩义市| 兴山县| 邯郸县| 仙游县| 远安县| 长垣县| 湛江市| 福清市| 高阳县| 自贡市| 山东省| 晋中市| 潼南县| 河间市| 铜山县| 泗阳县| 尉氏县| 苍南县| 南投市| 昔阳县| 高尔夫| 镇巴县| 涟源市| 惠州市| 黎城县| 江陵县| 镇平县| 通州市| 迁西县| 青铜峡市| 高淳县|