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

/*!
* 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. Java并发队列与容器

    [前言:无论是大数据从业人员还是Java从业人员,掌握Java高并发和多线程是必备技能之一.本文主要阐述Java并发包下的阻塞队列和并发容器,其实研读过大数据相关技术如Spark.Storm等源码的, ...

  2. DFA简介

    DFA(Detrend Fluctuation Analysis)与scale-free scale-free的本质特征是self-affine or self-similar.具体的,体现在几何上, ...

  3. 【SpringBoot】02.编写HelloWorld

    1.编写一个返回HelloWorld的Controller @Controller public class HelloWorld { @ResponseBody @RequestMapping(&q ...

  4. go beego框架 入门使用 (一)

    ---恢复内容开始--- 谢谢您花时间读我写的随笔,有问题的话欢迎留言,看到的话都会回复的! beego框架 分为Web版,Api版     api版目录      web版目录      (区别 : ...

  5. 关于ubuntu出现的一些问题的解决方法

    1. (1)现象: dpkg: 处理软件包 linux-image-4.15.0-36-generic (--configure)时出错: 子进程 已安装 post-installation 脚本 返 ...

  6. python数据分析03Python的数据结构、函数和文件

    我们会从Python最基础的数据结构开始:元组.列表.字典和集合.然后会讨论创建你自己的.可重复使用的Python函数.最后,会学习Python的文件对象,以及如何与本地硬盘交互. 3.1 数据结构和 ...

  7. Spider_基础总结6--动态网页抓取--selenium

    # 有些网站使用 '检查元素'也不能够好使,它们会对地址进行加密,此时使用Selenium 调用浏览器渲染引擎可以模拟用户的操作,完成抓取: # 注:selenium既可以抓取静态网页也可以抓取动态网 ...

  8. RoekerMQ4.x可视化控制台安装

    1.下载 https://github.com/apache/rocketmq-externals 2.解压文件tar -zxvf rocketmq-externals-master.zip 3.移动 ...

  9. Python面试题_中级版

    Python 面试题 1.Python是如何进行内存管理的 对象引用机制.垃圾回收机制.内存池机制 1.1对象引用机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引 ...

  10. redis源码学习之slowlog

    目录 背景 环境说明 redis执行命令流程 记录slowlog源码分析 制造一条slowlog slowlog分析 1.slowlog如何开启 2.slowlog数量限制 3.slowlog中的耗时 ...