基于jquery的表头固定的若干方法_jquery
A:使用JQuery UI插件,用DIV替换table,overflow-y:hidden达到滚动,让 thead绝对定位达到固定的目的,方法如下:
(function($){
$.chromatable = {
defaults: {
width: "900px",
height: "300px",
scrolling: "yes"
}
};
$.fn.chromatable = function(options){
var options = $.extend({}, $.chromatable.defaults, options);
return this.each(function(){
var $this = $(this);
var $uniqueID = $(this).attr("ID") + ("wrapper");
$(this).css('width', options.width).addClass("_scrolling");
$(this).wrap('
$(".scrolling_outer").css({'position':'relative'});
$("#"+$uniqueID).css(
{'border':'1px solid #CCCCCC',
'overflow-x':'hidden',
'overflow-y':'auto',
'padding-right':'17px'
});
$("#"+$uniqueID).css('height', options.height);
$("#"+$uniqueID).css('width', options.width);
$(this).before($(this).clone().attr("id", "").addClass("_thead").css(
{'width' : 'auto',
'display' : 'block',
'position':'absolute',
'border':'none',
'border-bottom':'1px solid #CCC',
'top':'1px'
}));
$('._thead').children('tbody').remove();
$(this).each(function( $this ){
if (options.width == "100%" || options.width == "auto") {
$("#"+$uniqueID).css({'padding-right':'0px'});
}
if (options.scrolling == "no") {
$("#"+$uniqueID).before('Expand table');
$("#"+$uniqueID).css({'padding-right':'0px'});
$(".expander").each(
function(int){
$(this).attr("ID", int);
$( this ).bind ("click",function(){
$("#"+$uniqueID).css({'height':'auto'});
$("#"+$uniqueID+" ._thead").remove();
$(this).remove();
});
});
$("#"+$uniqueID).resizable({ handles: 's' }).css("overflow-y", "hidden");
}
});
$curr = $this.prev();
$("thead:eq(0)>tr th",this).each( function (i) {
$("thead:eq(0)>tr th:eq("+i+")", $curr).width( $(this).width());
});
if (options.width == "100%" || "auto"){
$(window).resize(function(){
resizer($this);
});
}
});
};
function resizer($this) {
$curr = $this.prev();
$("thead:eq(0)>tr th", $this).each( function (i) {
$("thead:eq(0)>tr th:eq("+i+")", $curr).width( $(this).width());
});
};
})(jQuery);
页面调用如下:
...
<script> <BR>$(function(){ <BR>$("#yourTableID").chromatable({ <BR>width: "900px", <BR>height: "400px", <BR>scrolling: "yes" <BR>}); <BR>}); <BR></script>
...
Check out this header | Look here's another one | Wow, look at me! |
---|---|---|
Some content goes in here | Praesent vitae ligula nec orci pretium vestibulum | Maecenas tempus dictum libero |
Quisque in wisi quis orci tincidunt fermentum | Mauris aliquet mattis metus | Etiam eu ante non leo egestas nonummy |
此方法IE和FF的兼容性都很好,推荐。
B:利用css滤镜实现,但FF不支持微软的东西,不兼容。DOM如下:
列头 | 列头 | 列头 | ||||
---|---|---|---|---|---|---|
h1 | h2 | h3 | h4 | h5 | h6 | h7 |
a | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
b | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
c | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
C:最简单的方法当然是写2个table,用DIV的overflow-y:auto来实现,兼容性绝对没问题,麻烦之处在于2个table的对齐问题,另外用脚本赋予高度的话,需要加onresize()方法。DOM如下:
列头 | 列头 | 列头 | ||||
---|---|---|---|---|---|---|
h1 | h2 | h3 | h4 | h5 | h6 | h7 |
a | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
b | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
c | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
a | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
b | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
c | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
d | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
e | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
f | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
g | 单元格2 | 单元格3 | 单元格4 | 单元格5 | 单元格6 | 单元格7 |
有时候最笨的方法也可能是最简单最好的方法,这样写的兼容性绝对安全,灵活性也不错。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。
