js实现表格无缝滚动

CSS部分

<style type="text/css">
	* {
		padding: 0;
		margin: 0;
		list-style: none;
	}
	.scroll-content {
		width: 500px;
		height: 280px;
		border: solid 1px #000;
	}
	.company-content {
		width: 100%;
		height: calc(100% - 35px);
		overflow: hidden;/*滚动区域父元素超出部分隐藏*/
	}
	
	.company-list li {
		height: 35px;
		line-height: 35px;
		border-bottom: solid 1px #000;
	}
	
	.company-list li span {
		display: inline-block;
		width: 33%;
		text-align: center;
	}
</style>

body部分

<div class="scroll-content"></div>

JavaScript部分

<script src="resource/js/jquery-2.1.0.js"></script>
<script type="text/javascript">
	var tableList = [
		['XXX000', '2022-12-01', '234'],
		['XXX111', '2022-12-01', '234'],
		['XXX222', '2022-12-01', '234'],
		['XXX333', '2022-12-01', '234'],
		['XXX444', '2022-12-01', '234'],
		['XXX555', '2022-12-01', '234'],
		['XXX666', '2022-12-01', '234'],
		['XXX777', '2022-12-01', '234'],
		['XXX888', '2022-12-01', '234'],
		['XXX999', '2022-12-01', '234']
	];
	
	getList(tableList);
	
	function getList(data) {
		var header = '<ul class="company-list"><li><span>名称</span><span>时间</span><span>数量</span></li></ul>';
		
		var tableStr = '<ul class="company-list child">';
		for(let i = 0; i < data.length; i++) {
			tableStr += '<li><span>' + data[i][0] + '</span><span>' + data[i][1] + '</span><span>' + data[i][2] + '</span></li>';
		}
		tableStr += '</ul>';
		
		// 父元素内插入两个相同子元素,实现无缝滚动效果
		$(".scroll-content").html(header + '<div class="company-content">' + tableStr + tableStr + '</div>');
		let parent = $(".company-content")[0];// 滚动元素的父元素
		let child = $(".company-content .child")[0];// 滚动元素
		
		var timer = setInterval(function() {
			if(parent.scrollTop >= child.scrollHeight) {
				parent.scrollTop = 0;
			} else {
				parent.scrollTop = parent.scrollTop + parseFloat((1 / window.devicePixelRatio).toFixed(2)) + 0.01;
			}
		}, 50);
	}
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 jQuery 的 animate() 方法来实现表格无缝循环滚动。具体实现步骤如下: 1. 复制表格内容,将其粘贴到表格的末尾,实现表格内容的无限循环。 2. 使用 CSS 将表格包裹在一个固定高度、隐藏溢出部分的容器中。 3. 使用 jQuery 计算表格的高度和每次滚动的距离,并使用 animate() 方法实现表格滚动。 下面是一份示例代码: HTML 代码: ```html <div class="table-container"> <table> <thead> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> </thead> <tbody> <tr> <td>Row 1 Column 1</td> <td>Row 1 Column 2</td> <td>Row 1 Column 3</td> </tr> <tr> <td>Row 2 Column 1</td> <td>Row 2 Column 2</td> <td>Row 2 Column 3</td> </tr> <!-- 复制表格内容 --> <tr> <td>Row 1 Column 1</td> <td>Row 1 Column 2</td> <td>Row 1 Column 3</td> </tr> <tr> <td>Row 2 Column 1</td> <td>Row 2 Column 2</td> <td>Row 2 Column 3</td> </tr> </tbody> </table> </div> ``` CSS 代码: ```css .table-container { height: 200px; /* 容器固定高度 */ overflow: hidden; /* 隐藏溢出部分 */ } table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid #ccc; padding: 8px; } ``` JavaScript 代码: ```javascript $(function() { var tableHeight = $('table').height(); // 获取表格高度 var scrollDistance = $('table tr').eq(1).height(); // 获取每次滚动的距离 var scrollSpeed = 2000; // 滚动速度 setInterval(function() { $('.table-container').animate({scrollTop: '+=' + scrollDistance + 'px'}, scrollSpeed, 'swing', function() { if ($('.table-container').scrollTop() >= tableHeight) { $('.table-container').scrollTop(0); // 滚动到顶部 } }); }, scrollSpeed); }); ``` 这份代码中,我们使用了 setInterval() 方法和 animate() 方法实现表格的无限循环滚动。其中,setInterval() 方法用于定时执行 animate() 方法,而 animate() 方法则用于实现每次滚动的动画效果。在 animate() 方法中,我们使用 scrollTop 属性来控制滚动的距离,并在滚动表格底部时将滚动条重置到表格顶部,实现表格内容的无限循环滚动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值