一个快速添加表格的滚动条问题
一是不能用鼠标滚轮滚动;
二是滚动条能不能紧挨表格右边,而不是浏览器的最右边;
如果有更好的代码,还请提供,谢谢。
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
表格控件
</title>
<script language="javascript" type="text/javascript">
function Scrollbar() {
this.options = {
total: 0, //数据总数
pos: 0, //当前滚动位置
itemSize: 20, //单项尺寸
size: 200 //控件尺寸
};
}
Scrollbar.prototype = (function() {
function setOptions(options) {
for (var attr in options) {
this.options[attr] = options[attr];
}
Refresh(this);
}
function Refresh(_this) {
if (!_this.created) return;
//设置控件高度
_this.bar.style.height = _this.options.size + "px";
//设置内容高度
var ch = _this.options.total * _this.options.itemSize;
_this.content.style.height = ch + "px";
}
//获取滚动位置
function getPos() {
var top = this.bar.scrollTop;
var pos = parseInt(top / this.options.itemSize);
return pos;
}
//每页可展示的数据数量
function getPageItems() {
return this.options.size / this.options.itemSize;
}
//滚动事件响应
function OnScroll(_this) {
var pos = _this.getPos();
if (pos == _this.options.pos) return;
_this.options.pos = pos;
_this.onScroll(pos);
}
//滚动条创建
function CreateAt(dom) {
var _this = this;
var bar = document.createElement("div");
var content = document.createElement("div");
bar.appendChild(content);
bar.style.width = "19px";
bar.style.overflowY = "scroll";
bar.style.overflowX = "hidden";
if (bar.attachEvent) {
bar.attachEvent("onscroll", function() { OnScroll(_this); });
}
else {//firefox兼容
bar.addEventListener("scroll", function() { OnScroll(_this); }, false);
}
content.style.backgroundColor = "white";
content.style.width = "1px";
this.bar = bar;
this.content = content;
if (typeof (dom) == "string") {
dom = document.getElementById(dom);
}
dom.innerHTML = "";
dom.appendChild(this.bar);
this.created = true;
Refresh(this);
}
return {
setOptions: setOptions,
CreateAt: CreateAt,
getPos: getPos,
getPageItems: getPageItems,
onScroll: null //模拟滚动条事件
};
})();
var data = [];
//创建一万条示例数据
for (var i = 0; i < 10000; i++) {
var row = {
id: i,
text: "text" + i
};
data.push(row);
}
//创建滚动条
var scrbar = new Scrollbar();
window.onload = function() {
scrbar.CreateAt("divScroll");
scrbar.setOptions({
total: 10000,
size: 300
});
scrbar.onScroll = function(pos) {
ShowData(pos);
}
//获取模板
var items = scrbar.getPageItems();
var tpl = document.getElementById("trTpl");
tpl.parentNode.removeChild(tpl);
//仅创建所看到的几十行表格,所以自然快得多
var list = document.getElementById("tblList");
for (var i = 0; i < data.length && i < items; i++) {
var nr = tpl.cloneNode(true);
//从模板行复制新行
list.appendChild(nr);
}
ShowData(scrbar.getPos());
}
//根据滚动条,展示数据
function ShowData(pos) {
var n = scrbar.getPageItems();
var rows = document.getElementById("tblList").rows;
for (var i = 0; i < n; i++) {
var row = rows[i];
var item = data[i + pos];
row.cells["tdID"].innerHTML = item["id"];
row.cells["tdText"].innerHTML = item["text"];
}
}
</script>
</head>
<body>
<div id="divScroll" style="float:right">
</div>
<table border="1">
<!--行标题-->
<thead>
<tr>
<th>
ID
</th>
<th>
Text
</th>
</tr>
</thead>
<!--数据展示区-->
<tbody id="tblList">
<tr id="trTpl">
<td id="tdID">
</td>
<td id="tdText">
</td>
</tr>
</tbody>
</table>
</body>
</html> 相关推荐
解决layui数据表格table的横向滚动条显示问题
今天小编就为大家分享一篇解决layui数据表格table的横向滚动条显示问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
掌握jQuery Table Scroll:在表格中轻松添加滚动条
在处理包含大量数据的表格时,传统的全页面滚动条可能会导致性能问题,尤其是对于移动设备用户来说。jQuery table scroll插件的出现,解决了这个问题。它允许表格在容器内水平或垂直滚动,同时保持表头固定,以便用户快速浏览数据。在使用jQuery table scroll插件时,控制滚动条尺寸通常是通过设置特定参数来实现的。例如,和参数允许开发者为滚动条指定一个自定义的宽度和高度。这种自定义可以提供更为精细的用户体验,特别是当表格内容与设计风格需要完美匹配时。
网页表格滚动条插件设计与实现
在Web开发中,当表格数据量较大时,受限于可视区域,用户往往无法一次性查看全部内容。此时,为表格添加滚动条成为一种有效的可视区域控制手段。滚动条不仅提升了页面的可用性,还增强了用户体验。通过动态控制内容区域的展示范围,开发者可以在有限空间内承载更多信息。目前,实现表格滚动条的方式主要包括原生HTML/CSS控制、JavaScript逻辑封装以及第三方插件集成。其中,原生实现简单但样式与交互受限,而基于JavaScript或CSS的自定义滚动条插件则提供了更高的灵活性与兼容性。
jsp中为表格添加水平滚动条的实现方法
下面小编就为大家带来一篇jsp中为表格添加水平滚动条的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
HTML表格滚动条实现[项目源码]
本文介绍了如何在HTML页面中实现表格的横纵滚动条功能,并固定表头以便于查看大量数据。通过CSS和JavaScript的结合使用,解决了表格列宽自适应、内容不换行等问题。文章提供了详细的代码示例,包括CSS样式设置和JavaScript动态调整表格宽度的方法,帮助开发者快速实现类似功能。


