威望0
积分7946
贡献0
在线时间763 小时
UID1
注册时间2021-4-14
最后登录2024-11-21
管理员
- UID
- 1
- 威望
- 0
- 积分
- 7946
- 贡献
- 0
- 注册时间
- 2021-4-14
- 最后登录
- 2024-11-21
- 在线时间
- 763 小时
|
表格自滚动效果图
实现原理:
原理:每一次的滚动都是在其setInterval()定时器的作用下,每次将DOM.scrollTop++
具体实现:
1、 .html 代码如下:(这里我使用div模拟成table)
[mw_shl_code=applescript,true]<div style="padding: 100px;">
<div class="tableTitleRow">
<div class="tabletTitle">Name</div>
<div class="tabletTitle">Age</div>
<div class="tabletTitle">Address</div>
</div>
<div id="parent" class="parent">
<div id="child1" class="child">
<div *ngFor="let data of listOfData;index as i">
<div class="tableBodyRow">
<div class="tabletBody">{{i}}</div>
<div class="tabletBody">{{i+10}}</div>
<div class="tabletBody">{{i+100}}</div>
</div>
</div>
</div>
<div id="child2" class="child"></div>
</div>
</div>
[/mw_shl_code]
2、 .css 代码如下:
[mw_shl_code=applescript,true].Qbody {
padding: 100px;
// 表头层
.tableTitleRow {
display: flex;
.tabletTitle {
color: #ffffff;
background-color: #1e6fff;
height: 64px;
font-size: 16px;
flex: 1;
justify-content: flex-start;
text-align: center;
line-height: 64px;
border: 1px solid #ccc;
}
}
//内容层
.parent {
height: 380px; //控制多高处出现滚动条
margin: 0 auto;
background: #242424;
overflow-y: scroll;
.child {
/*设置的子盒子高度大于父盒子,产生溢出效果*/
height: auto;
div {
.tableBodyRow {
display: flex;
.tabletBody {
background: #ffffff;
font-size: 16px;
flex: 1;
justify-content: flex-start;
text-align: center;
line-height: 64px;
border: 1px solid #ccc;
div {
line-height: 30px;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
}
}
}
}
}
}
[/mw_shl_code]
3、 .ts 代码如下:
[mw_shl_code=applescript,true] ngOnInit(): void {
var parent = document.getElementById('parent');//获取Dom
var child1 = document.getElementById('child1');//获取Dom
var child2 = document.getElementById('child2');//获取Dom
child2.innerHTML = child1.innerHTML;
this.mysetInterval=setInterval(function () {
if((parent.scrollTop++) == (parent.scrollTop)&&(parent.scrollTop!=0)) {
parent.scrollTop = 0;
} else {
parent.scrollTop++;
}
}, 50);
}
mysetInterval//定时器名字
ngOnDestroy() {//每当 Angular 每次销毁指令/组件之前调用并清扫
clearInterval(this.mysetInterval)//关闭循环
}
[/mw_shl_code] |
上一篇:js检测开发者工具是否被打开防调试使用devtools-detector插件下一篇:H5跳转小程序 (成功案例)
|