写了个插件,用来固定表的头部和尾部。

/*!
* smartFloat v1.0.1
* Copyright 2019- Richard
* Licensed under MIT
*/
$.fn.extend({
smartFloat: function (_newpos = {
top: 0
}, _stopElement = undefined) {
function position(element) {
var csstop = element.offset().top;
var csspos = element.css("position");
var csswidth = element.width();
$(window).scroll(function () {
var scroll = $(this).scrollTop(); //滚动条所在位置
if ((scroll > csstop //如果滚动到页面超出了当前元素element的相对页面顶部的高度
||
$(this).height() < csstop) //如果元素超过窗口高度
) {
element.css({
position: "fixed",
'z-index': 999,
width: csswidth
}).css(_newpos); //如果碰到了停止浮动的元素
if (_stopElement) {
_stopElement = $(_stopElement)
var secsstop = _stopElement.offset().top;
try {
if (secsstop >= scroll && secsstop < (scroll + $(window).height())) { //元素在可视区域
restoreCss();
}
} catch (error) {
console.log(error);
}
} //调整表头每个th的宽度,使其和td宽度一致
if (element.parent()[0].tagName.toLowerCase() == 'table' && !element.data('widthIsSeted')) {
var arrChildWidth = Array();
element.next().find('tr').eq(0).children().each(function (i) {
arrChildWidth[i] = $(this).width(); //保存数据行每个td的宽度
});
element.find('th').each(function (i, th) {
$(th).width(arrChildWidth[i]); //设置每个th的宽度和td一致
});
console.log('调整表头每个th的宽度');
element.data('widthIsSeted', true);
}
} else {
restoreCss();
}
}); function restoreCss() {
element.css('position', csspos);
}
};
return $(this).each(function () {
position($(this));
});
}
});

调用方式:

    $(".card-close").smartFloat({
'top': '10px',
'right': '50px',
'z-index': 999
});

$("thead").smartFloat({
'top': 0,
'z-index': 990
}); //浮动表头

$("#tablefooter").smartFloat({
bottom: 0
}, "footer"); //浮动功能区,footer可见时取消浮动

JQuery浮动对象插件的更多相关文章

  1. jQuery 浮动标签插件,帮助你提升表单用户体验

    浮动标签模式(Float Label Pattern)是最新流行的一种表单输入域的内容提示方式,当用户在输入框输入内容的时候,原先占位符的内容向上移动,显示在输入的内容的上面.这里推荐的这款 jQue ...

  2. 自己写的jQuery浮动广告插件

    效果图: 文件位置摆放: 插件的js代码: $.extend({ pfAdv:function(options){ var defaults={ count:1, startTop:200, star ...

  3. 非常强大的jQuery万能浮动框插件

    支持hover, click, focus以及无事件触发:支持多达12种位置的定位,出界自动调整:支持页面元素加载,Ajax加载,下拉列表,提示层效果,tip类效果等:可自定义装载容器:内置UI不错的 ...

  4. jQuery对象插件封装步骤

    jQuery是js的一个非常优秀的库,它大大简化了js的很多操作,并且解决了js的大部分兼容性问题.甚至很多css兼容性问题,用jQuery写都能解决. 这里是对象插件的封装.当然,封装插件很多,这里 ...

  5. jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...

  6. C#结合Jquery LigerUI Tree插件构造树

    Jquery LigerUI Tree是Jquery LigerUI()的插件之一,使用它可以快速的构建树形菜单.呵呵 废话不说了,直入正题,下面介绍C#结合ligerui 构造树形菜单的两种方法 1 ...

  7. 基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  8. 20款美化网站的 jQuery Lightbox 灯箱插件

    jQuery Lightbox 灯箱插件可以让你为您的网站和应用程序展示优雅的图像,视频 和其它内容(使用模式窗口).如果你是一个开发人员,你必须拥有 jQuery 灯箱插件集合,因为有一部分的客户会 ...

  9. Croppic – 免费开源的 jQuery 图片裁剪插件

    Croppic 这款开源的 jQuery 图片裁剪插件能够满足网站开发人员各种不同的使用需要.只需要简单的上传图片,就可以实现你想要的图像缩放和裁剪功能.因为使用了 HTML5 FormData  对 ...

随机推荐

  1. php 批量脚本检测语法错误

    shell 根据参数检测 当前php项目下 的语法错误 #!/bin/bash function getdir(){ for el in `ls $1` do dir_file=$1"/&q ...

  2. 14、Cookie和Session组件

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  3. JavaScript一元运算符、二元运算符和三元运算符

    在JavaScript中,运算符可以根据其实际操作数的个数进行分类. JavaScript中的大多数运算符是一个二元运算符(binary operator),将两个表达式合并成为一个稍复杂的表达式.譬 ...

  4. acm一些小细节/技巧

    以后没有终止信号的输入统一用 : while(cin>>a) { ... } "1" 不是质数, 要注意.  当需要把一个数组中的数值初始化成正无穷时,为了避免加法算术 ...

  5. ESP32的Linux开发环境搭建

    1. 官网教程地址 https://docs.espressif.com/projects/esp-idf/zh_CN/v4.0.1/get-started/linux-setup.html 2.官网 ...

  6. 查询osd上的pg数

    本文中的命令的第一版来源于国外的一个博客,后面的版本为我自己修改的版本 查询的命令如下: ceph pg dump | awk ' /^pg_stat/ { col=1; while($col!=&q ...

  7. Check Host:实时监控网站或者服务器是否可以访问

    如果你拥有一个网站,那么最重要的事情就是要保证它24小时都能够访问.不过国内的虚拟主机服务非常糟糕,经常会出现各种状况,所以我们需要一个软件,可以让我们第一时间知道网站出现了无法访问的情况,从而通知售 ...

  8. 放弃腾讯75W年薪,回老家当公务员,提离职被领导教育。网友:leader嫉妒了

    最近一位腾讯员工自爆,"老家公务员政审已过,放弃腾讯75w年薪,提了离职被leader教育了".并且这位员工还晒出了领导"教育"自己的聊天记录,引发网友们的热议 ...

  9. mysql数据库安装与卸载以及Navicat安装

    关系型数据库Mysql 1.mysql官网网址:www.mysql.org 2.mysql数据库安装 傻瓜式安装下载地址 https://dev.mysql.com/downloads/install ...

  10. 精尽MyBatis源码分析 - MyBatis 的 SQL 执行过程(一)之 Executor

    该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...