-
-
changmingming 初学数据Lv2
发表于2021-1-19 14:16
悬赏1
已解决
楼主
ABI产品 的 分析区表格, 浮动维 类型的,怎么实现 数据滚动,且没有滚动条,也可以控制滚动的速度

最佳答案
有容器内的表格自动轮播的脚本
复制代码这里提供一个表样,解压后这里装入
轮换组件内表格轮播.rar
(3.17 KB, 下载次数: )
- /***
- **表格内容自动轮播脚本
- **@param tableDom内容滚动的表格,最好是表格的父DIV
- **@param visibleHeight 可视区的高度
- ***/
- function autoScrollTable(tableDom, visibleHeight) {
- var marqueesHeight = visibleHeight;
- var stopscroll = false;
- var scrollElem = tableDom;
- var freshScrollHeight = tableDom.firstElementChild.offsetHeight/4;
- var preTop = 0;
- var currentTop = 0;
- var stoptime = 0;
- with (scrollElem) {
- style.height = parseFloat(marqueesHeight) + "px";
- style.overflow = 'hidden';
- noWrap = true;
- }
- var scrollUp = function () {
- if (stopscroll) {
- setTimeout(scrollUp, 50);
- return;
- }
- currentTop += 1;
- if (currentTop == (marqueesHeight + 1)) {
- stoptime += 1;
- currentTop -= 1;
- if (stoptime == 1) {
- currentTop = 0;
- stoptime = 0;
- }
- } else {
- preTop = scrollElem.scrollTop;
- scrollElem.scrollTop += 1;
- if (preTop == scrollElem.scrollTop) {
- //console.log("preTop =" + preTop);
- scrollElem.scrollTop = freshScrollHeight + 2;
- scrollElem.scrollTop += 1;
- }
- }
- setTimeout(scrollUp, 5);//控制速度 越大越慢
- };
- var restartScroll = function () {
- scrollElem.scrollTop = 0;
- setTimeout(scrollUp, 50);
- };
- jQuery(tableDom).hover(function () {
- stopscroll = true;
- }, function () {
- stopscroll = false;
- });
- //控制开始是否延迟
- setTimeout(restartScroll, 0);
- }
- /*
- *复制表格每行内容
- */
- function copyTableRows(tableDom) {
- var tBody = tableDom.firstElementChild.children[1];
- var rowList = tBody.children;
- var rowLength = rowList.length;
- for(var i=0 ; i<rowLength ; i++){
- var trow = rowList[i];
- var newTR = tBody.insertRow(rowLength+i);
- newTR.style.height = trow.style.height;
- copyRowCells(trow , newTR);
- }
- }
- /*
- *复制每行的列内容
- */
- function copyRowCells(trow , newTR) {
- var cellList = trow.children;
- var cellLength = cellList.length;
- var cellHtml = "";
- for(var i=0 ; i<cellLength ; i++){
- var cell = cellList[i];
- cellHtml += cell.outerHTML;
- }
- newTR.innerHTML = cellHtml;
- }
- //复制表格行内容
- copyTableRows(document.getElementById('GRID1'));
- autoScrollTable(document.getElementById('GRID1'),document.getElementById("HHH2").clientHeight);
- copyTableRows(document.getElementById('GRID2'));
- autoScrollTable(document.getElementById('GRID2'),document.getElementById("HHH3").clientHeight);



4个回答
有容器内的表格自动轮播的脚本
- /***
- **表格内容自动轮播脚本
- **@param tableDom内容滚动的表格,最好是表格的父DIV
- **@param visibleHeight 可视区的高度
- ***/
- function autoScrollTable(tableDom, visibleHeight) {
- var marqueesHeight = visibleHeight;
- var stopscroll = false;
- var scrollElem = tableDom;
- var freshScrollHeight = tableDom.firstElementChild.offsetHeight/4;
- var preTop = 0;
- var currentTop = 0;
- var stoptime = 0;
- with (scrollElem) {
- style.height = parseFloat(marqueesHeight) + "px";
- style.overflow = 'hidden';
- noWrap = true;
- }
- var scrollUp = function () {
- if (stopscroll) {
- setTimeout(scrollUp, 50);
- return;
- }
- currentTop += 1;
- if (currentTop == (marqueesHeight + 1)) {
- stoptime += 1;
- currentTop -= 1;
- if (stoptime == 1) {
- currentTop = 0;
- stoptime = 0;
- }
- } else {
- preTop = scrollElem.scrollTop;
- scrollElem.scrollTop += 1;
- if (preTop == scrollElem.scrollTop) {
- //console.log("preTop =" + preTop);
- scrollElem.scrollTop = freshScrollHeight + 2;
- scrollElem.scrollTop += 1;
- }
- }
- setTimeout(scrollUp, 5);//控制速度 越大越慢
- };
- var restartScroll = function () {
- scrollElem.scrollTop = 0;
- setTimeout(scrollUp, 50);
- };
- jQuery(tableDom).hover(function () {
- stopscroll = true;
- }, function () {
- stopscroll = false;
- });
- //控制开始是否延迟
- setTimeout(restartScroll, 0);
- }
- /*
- *复制表格每行内容
- */
- function copyTableRows(tableDom) {
- var tBody = tableDom.firstElementChild.children[1];
- var rowList = tBody.children;
- var rowLength = rowList.length;
- for(var i=0 ; i<rowLength ; i++){
- var trow = rowList[i];
- var newTR = tBody.insertRow(rowLength+i);
- newTR.style.height = trow.style.height;
- copyRowCells(trow , newTR);
- }
- }
- /*
- *复制每行的列内容
- */
- function copyRowCells(trow , newTR) {
- var cellList = trow.children;
- var cellLength = cellList.length;
- var cellHtml = "";
- for(var i=0 ; i<cellLength ; i++){
- var cell = cellList[i];
- cellHtml += cell.outerHTML;
- }
- newTR.innerHTML = cellHtml;
- }
- //复制表格行内容
- copyTableRows(document.getElementById('GRID1'));
- autoScrollTable(document.getElementById('GRID1'),document.getElementById("HHH2").clientHeight);
- copyTableRows(document.getElementById('GRID2'));
- autoScrollTable(document.getElementById('GRID2'),document.getElementById("HHH3").clientHeight);


