当时遇见这个问题 是医院手麻系统大批量数据展示,由于是旧项目系统没有使用到前端的架构 只能使用JQ,JS, css完成 也谢谢给予我支持的同行们

固定首行数据: 采用函数的方式进行  JQ
/**
* 功能:固定表头
* 参数 viewid 表格的id
* scrollid 滚动条所在容器的id
* size 表头的行数(复杂表头可能不止一行)
*/
function scroll(viewid, scrollid, size) {
  // 获取滚动条容器
  var container = document.getElementById(scrollid);
  // 将表格拷贝一份
  var tb2 = document.getElementById(viewid).cloneNode(true);
  // 获取表格的行数
  var len = tb2.rows.length;
  // 将拷贝得到的表格中非表头行删除
  for (var i = tb2.rows.length; i > size; i--) {
    // 每次删除数据行的第一行
    tb2.deleteRow(size);
  }
  // 创建一个div
  var bak = document.createElement("div");
  // 将div添加到滚动条容器中
  container.appendChild(bak);
  // 将拷贝得到的表格在删除数据行后添加到创建的div中
  bak.appendChild(tb2);
  // 设置创建的div的position属性为absolute,即绝对定于滚动条容器(滚动条容器的position属性必须为relative)
  bak.style.position = "absolute";
  // 设置创建的div的背景色与原表头的背景色相同(貌似不是必须)
  bak.style.backgroundColor = "#cfc";
  // 设置div的display属性为block,即显示div(貌似也不是必须,但如果你不希望总是显示拷贝得来的表头,这个属性还是有用处的)
  bak.style.display = "block";
  // 设置创建的div的left属性为0,即该div与滚动条容器紧贴
  bak.style.left = 0;
  // 设置div的top属性为0,初期时滚动条位置为0,此属性与left属性协作达到遮盖原表头
  bak.style.top = "0px";
  bak.style.width = "100%";
  // 给滚动条容器绑定滚动条滚动事件,在滚动条滚动事件发生时,调整拷贝得来的表头的top值,保持其在可视范围内,且在滚动条容器的顶端
  container.onscroll = function () {
    // 设置div的top值为滚动条距离滚动条容器顶部的距离值
    bak.style.top = this.scrollTop + "px";
  }
}

  // 在页面加载完成后调用该方法
  window.onload = function () {
    scroll("recordDetail", "tableDiv", 1);
  }

数据格式展示:
<div id="tableDiv" style="overflow-x:auto;" class="wrapper">
<table id='recordDetail' class="researh" style="border-collapse: collapse; table-layout: fixed; clear: both; cursor: pointer;">
  <tr id="DetailTh" class="FixedTitleRow" style="width:100%;"></tr>
  <tr id="DatailList" style="width:100%;" ></tr>
</table>

首列固定展示: CSS样式进行
<script type="text/javascript">
  $("#tableDiv").scroll(function () {//给table外面的div滚动事件绑定一个函数
    var left = $("#tableDiv").scrollLeft();//获取滚动的距离
    var trs = $("#tableDiv table tr");//获取表格的所有tr
    trs.each(function (i) {//对每一个tr(每一行)进行处理
      //获得每一行下面的所有的td,然后选中下标为0的,即第一列,设置position为相对定位
      //相对于父div左边的距离为滑动的距离,然后设置个背景颜色,覆盖住后面几列数据滑动到第一列下面的情况
      //如果有必要也可以设置一个z-index属性
      $(this).children().eq(0).css({ "position": "relative", "top": "0px", "left": left, "background-color": "white" });
    });
  });

</script>

关于JS、JQ首行首列固定展示的更多相关文章

  1. excel如何冻结首行或首列及首行首列同时冻结

    冻结首行方法: 首先选择首行,在菜单栏选择视图菜单,再选择冻结窗格下拉三角里的冻结首行即可. 效果如下:拖动垂直滚动条 冻结首列方法: 首先选择首列,在菜单栏选择视图菜单,再选择冻结窗格下拉三角里的冻 ...

  2. 前端基于JQgrid实现自定义列头展示

    先上效果图   因为公司项目的需要,并且公司只有我这一个能写js的前端,这个自定义展示jqgrid列选项的需求依然是交由我写,辣么就分享一下我的工作成果. //初始化函数 multiSelectCol ...

  3. js中文首字母数组排序

    js中文首字母数组排序 数组的排序js算法: var Pinyin = (function() { var Pinyin = function(ops) { this.initialize(ops); ...

  4. CSS样式实现表头和列固定

    效果图:第一行和第一列固定       <!DOCTYPE html> <html lang="zh"> <head> <meta cha ...

  5. JS+JQ手风琴效果

    最新在学习JS写一些实用的小玩意——手风琴 CSS样式: <style type="text/css"> * { margin: 0px; border: 0px; p ...

  6. js控制页面的全屏展示和退出全屏显示

    <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/h ...

  7. js&jq 发送验证码倒计时

    <input  type="text"   name=''  id="btn"> //发送验证码倒计时var wait=30; function t ...

  8. easyui datagrid 表头固定(垂直滚动条)、列固定(水平滚动条)

    easyui datagrid 表头固定(垂直滚动条).列固定(水平滚动条),每页显示1000行 最近用多了easyui 之后还是觉得它的功能还是很强大的.它原有的功能就已经能够满足90%以上的界面需 ...

  9. jq常用事件(on,blur,focus,change),js/jq等待图片(页面)加载完毕事件,js读取文件

    jq常用事件(on,blur,focus,change) // 方法一(推荐) $('.box').on( "click",function() {} ) $('.box').on ...

随机推荐

  1. 使用wireshark抓包分析-抓包实用技巧

    目录 使用wireshark抓包分析-抓包实用技巧 前言 自定义捕获条件 输入配置 输出配置 命令行抓包 抓取多个接口 抓包分析 批量分析 合并包 结论 参考文献 使用wireshark抓包分析-抓包 ...

  2. 10 table标签

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  3. SQL Server 2012链接服务器

    第一步,在服务器对象,链接服务器那里新建链接服务器:输入要链接服务器的IP地址. 第二步,安全性输入连接数据的用户名和密码. 第三步,验证是不可以打开链接服务器库的表名,视图等数据. 第四步,如果要查 ...

  4. 【React】存储全局数据

    参考链接:https://segmentfault.com/a/1190000012057010?utm_source=tag-newest webstorage webstorage是本地存储,存储 ...

  5. JavaScript的数据类型及其检测

    一.什么是数据类型 1.基本类型 值是不可改变的 var name = 'java'; name.toUpperCase(); // 输出 'JAVA' console.log(name); // 输 ...

  6. Web自动化测试 二 ----- HTML

    HTML 一.结构 html> 与 </html> 之间的文本描述网页 <body> 与 </body> 之间的文本是可见的页面内容 <h1> 与 ...

  7. 使用MVVM的常见误区(1)在ViewModel中和用户交互

    缺点,不能进行单元测试 比如,用户在界面点击按钮,实现用户选择一个文件,然后对文件内容进行解析.常见错误如下 using Microsoft.Win32; namespace View和ViewMod ...

  8. DRF 视图

    目录 一.DRF中的Request 二.前戏: 关于面向对象的继承 三.初级版本 1. settings.py文件 -- 注册app 2. models.py文件 -- 创建表 3. admin.py ...

  9. springcloud-路由Zull

    1. 场景描述 今天接着介绍springcloud,今天介绍下springcloud的路由网关-Zull,外围系统或者用户通过网关访问服务,网关通过注册中心找到对应提供服务的客户端,网关也需要到注册中 ...

  10. Spring Boot2(十三):整合定时任务发送邮件

    一.前言 主要玩一下SpringBoot的定时任务和发送邮件的功能.定时发送邮件,这在实际生成环境下主要用户系统性能监控时,当超过设定的阙值,就发送邮件通知预警功能.这里只通过简单的写个定时结合邮件通 ...