亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS實(shí)現(xiàn)table表格固定表頭且表頭隨橫向滾動(dòng)而滾動(dòng)

 更新時(shí)間:2017年10月26日 09:10:09   投稿:mrr  
這篇文章主要介紹了JS實(shí)現(xiàn)table表格固定表頭且表頭可以隨橫向滾動(dòng)而滾動(dòng),需要的朋友可以參考下

先看一張效果圖

這里寫圖片描述

思路:

1、頭部用一個(gè)table并用一個(gè)div包裹著, 表格的具體內(nèi)容用一個(gè)table

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

3、獲取整個(gè)表格的高度

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

5、滾動(dòng)的零界點(diǎn)的距離 表格的高度+表格距離頁面頂部的距離 如果滾動(dòng)超過這個(gè) 就讓頭部的top值歸0或原封不動(dòng)

這里寫圖片描述

當(dāng)然還有很多可以優(yōu)化的地方 我只是展示一個(gè)小思路 嘿嘿嘿

題外話 為啥用紅色表頭 因?yàn)轱@眼哇 哈哈

JS代碼

/**
     * 最重要的一點(diǎn)是頭和身體是兩個(gè)table 然后定位用relative 然后通過滾動(dòng)來計(jì)算
     * */
      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; // 滾動(dòng)的零界點(diǎn) 最多能滾動(dòng)到哪里
        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') // 這個(gè)50是因?yàn)槲业念^部導(dǎo)航固定在頂部 高是50 所以要加上
            }else {
              var topCss = that.$dom.css('top');
              if(topCss === '0px' || topCss === 'auto'){
              }else {
                that.$dom.css('top', '0px')
              }
            }
          })
        }
      }

總結(jié)

以上所述是小編給大家介紹的JS實(shí)現(xiàn)table表格固定表頭且表頭隨橫向滾動(dòng)而滾動(dòng),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Bootstrap每天必學(xué)之彈出框(Popover)插件

    Bootstrap每天必學(xué)之彈出框(Popover)插件

    Bootstrap每天必學(xué)之彈出框(Popover)插件,彈出框的內(nèi)容完全可使用 Bootstrap 數(shù)據(jù) API(Bootstrap Data API)來填充,如何實(shí)現(xiàn)請(qǐng)參考本文
    2016-04-04
  • javascript 顯示全局變量與隱式全局變量的區(qū)別

    javascript 顯示全局變量與隱式全局變量的區(qū)別

    這篇文章主要介紹了javascript 顯示全局變量與隱式全局變量的區(qū)別,需要的朋友可以參考下
    2017-02-02
  • 利用try-catch判斷變量是已聲明未聲明還是未賦值

    利用try-catch判斷變量是已聲明未聲明還是未賦值

    這篇文章主要介紹了利用try-catch判斷變量是已聲明未賦值還是未聲明,需要的朋友可以參考下
    2014-03-03
  • JSON傳遞bool類型數(shù)據(jù)的處理方式介紹

    JSON傳遞bool類型數(shù)據(jù)的處理方式介紹

    如果服務(wù)器端生成的JSON中有bool類型的數(shù)據(jù)時(shí),到客戶端解析時(shí)出現(xiàn)了小小的問題,下面簡(jiǎn)單為大家介紹下正確的處理方式
    2013-09-09
  • JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)登陸郵箱功能的方法

    JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)登陸郵箱功能的方法

    這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊跳轉(zhuǎn)登陸郵箱功能的方法,涉及js針對(duì)hash表的遍歷與頁面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-10-10
  • 原生js封裝添加class,刪除class的實(shí)例

    原生js封裝添加class,刪除class的實(shí)例

    下面小編就為大家?guī)硪黄鷍s封裝添加class,刪除class的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望對(duì)大家有所幫助
    2017-11-11
  • 談一談js中的執(zhí)行環(huán)境及作用域

    談一談js中的執(zhí)行環(huán)境及作用域

    這篇文章主要和大家一起談一談js中的執(zhí)行環(huán)境及作用域,本文依據(jù)面試過程中遇到的問題進(jìn)行探討,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 微信小程序自定義地址組件

    微信小程序自定義地址組件

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義地址組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Javascript中this綁定的3種方法與比較

    Javascript中this綁定的3種方法與比較

    大家都知道JS是一門動(dòng)態(tài)語言,與傳統(tǒng)的c和c++最大的區(qū)別就是js是在運(yùn)行時(shí)動(dòng)態(tài)檢測(cè)值的類型和變化。this是js中的一個(gè)關(guān)鍵字,它代表當(dāng)前作用域的上下文環(huán)境,而且隨著上下文的改變而動(dòng)態(tài)變化。這篇文章我們將詳細(xì)介紹Javascript中綁定this的三種方法與簡(jiǎn)單的比較。
    2016-10-10
  • JavaScript觸發(fā)器詳解

    JavaScript觸發(fā)器詳解

    JavaScript觸發(fā)器詳解...
    2007-03-03

最新評(píng)論