[ABI 5.1] 轮换组件自动轮播

21802
11

zm1997 数据达人Lv4

发表于2021-1-12 15:54

悬赏1

已解决

楼主
红框中是轮换组件及容器的代号。
//---------参数配置start---------
//第一个参数是控件id
//第二个参数是轮播间隙时间单位是ms
var autoslide = setInterval(function(){
autoShowSlide('HHH241', 3000);
},3000);
//-------end----------

setInterval(function(){

if(!$("#HHH39").data("events")){
$("#HHH39").mouseover(function(){
if(autoslide){
window.clearInterval(autoslide);
autoslide = null;
}
});
}else{
if(!$("#HHH39").data("events")["mouseenter"]){
$("#HHH39").mouseover(function(){
if(autoslide){
window.clearInterval(autoslide);
autoslide = null;
}
});
}
}

},3000);

setInterval(function(){

if(!$("#HHH39").data("events")){
$("#HHH39").mouseout(function(){
if(!autoslide){
autoslide = setInterval(function(){
autoShowSlide('HHH241', 3000);
},3000);
}
});
}else{
if(!$("#HHH39").data("events")["mouseleave"]){
$("#HHH39").mouseout(function(){
if(!autoslide){
autoslide = setInterval(function(){
autoShowSlide('HHH241', 3000);
},3000);
}
});
}
}

},3000);


function autoShowSlide(block, time) {
var slide = g_rptpage.getWidgetByName(block);
if(!slide){
return ;
}
var gocount = slide.getGocount();//步数
//var pagesize = slide.getPagesize();
//var active = slide.getActive();

//暂时只考虑一次翻一页的情况
if (gocount == 1) {
//有子页面且子页面大于1页
var slidelist = slide.slidelist;
if (slidelist != null && slidelist.getSubCount() > 1){
if (slidelist.getActiveIndex() == slidelist.getSubCount() - 1) {
//最后一页调回第一页
//slidelist.setActivePage(0);
slide.setActive(0);
} else {
//slidelist.setActivePage(slidelist.getActiveIndex() + 1);
slide.setActive(slidelist.getActiveIndex() + 1);
}
}
}
};
是自动轮换的脚本,不能使用了,是哪里错了吗?请指点一下


最近看过此主题的会员

esen_56WHLXC2GT

esen_53NRBDQS8T

esen_4UIBLD8PRN4M

不如相忘

Ly_LJY

chenzyd

esen_5116BAGJ0I

esen_4XMY0N6IMU

帆用户

jonie

liucca

mmm。。。

最佳答案

xxxl

发表于2021-1-12 15:54

只看该作者

取消 关注该作者的回复

zm1997 发表于 2021-1-12 17:41
需要在那部分进行调节?

需要自己写 或定制,这边无法提供
11个回答

只看楼主

xxxl 数据领袖Lv6

发表于2021-1-12 16:06

只看该作者

取消 关注该作者的回复

沙发

您这里哪里的脚本?
是需要在报表的容器中轮播表格吗

zm1997 数据达人Lv4

发表于2021-1-12 16:08

只看该作者

取消 关注该作者的回复

板凳

本帖最后由 zm1997 于 2021-1-12 16:11 编辑

xxxl 发表于 2021-1-12 16:06
您这里哪里的脚本?
是需要在报表的容器中轮播表格吗

脚本是从社区里面找的,之前测试的时候是可以用的。是需要在报表的容器中轮播表格。扩展组件可以在容器中使用的吧?

xxxl 数据领袖Lv6

发表于2021-1-12 16:14

只看该作者

取消 关注该作者的回复

地板

zm1997 发表于 2021-1-12 16:08
脚本是从社区里面找的,之前测试的时候是可以用的。是需要在报表的容器中轮播表格。扩展组件可以在容器中 ...

这个只针对表格轮播使用的脚本,其他组件需要自行修改或脚本定制

zm1997 数据达人Lv4

发表于2021-1-12 16:21

只看该作者

取消 关注该作者的回复

5#

xxxl 发表于 2021-1-12 16:14
sweat.gif这个只针对表格轮播使用的脚本,其他组件需要自行修改或脚本定制

在容器中加入扩展组件,再在扩展组件中加入容器,再在容器中加入表格,这样的扩展组件的自动轮播就不可以用了吗?

xxxl 数据领袖Lv6

发表于2021-1-12 16:36

只看该作者

取消 关注该作者的回复

6#

zm1997 发表于 2021-1-12 16:21
在容器中加入扩展组件,再在扩展组件中加入容器,再在容器中加入表格,这样的扩展组件的自动轮播就不可以 ...

我本地试了轮播组件可以这是表样 轮换组件内表格轮播.rar (3.17 KB, 下载次数: )
解压后这里导入

脚本代码是

  1. /***
  2. **表格内容自动轮播脚本
  3. **@param tableDom内容滚动的表格,最好是表格的父DIV
  4. **@param visibleHeight 可视区的高度
  5. ***/
  6. function autoScrollTable(tableDom, visibleHeight) {
  7.     var marqueesHeight = visibleHeight;
  8.     var stopscroll = false;
  9.     var scrollElem = tableDom;
  10.         var freshScrollHeight = tableDom.firstElementChild.offsetHeight/4;
  11.     var preTop = 0;
  12.     var currentTop = 0;
  13.     var stoptime = 0;
  14.     with (scrollElem) {
  15.         style.height = parseFloat(marqueesHeight) + "px";
  16.         style.overflow = 'hidden';
  17.         noWrap = true;
  18.     }
  19.     var scrollUp = function () {
  20.         if (stopscroll) {
  21.             setTimeout(scrollUp, 50);
  22.             return;
  23.         }
  24.         currentTop += 1;
  25.         if (currentTop == (marqueesHeight + 1)) {
  26.             stoptime += 1;
  27.             currentTop -= 1;
  28.             if (stoptime == 1) {
  29.                 currentTop = 0;
  30.                 stoptime = 0;
  31.             }
  32.         } else {
  33.             preTop = scrollElem.scrollTop;
  34.             scrollElem.scrollTop += 1;
  35.             if (preTop == scrollElem.scrollTop) {
  36.                                 //console.log("preTop =" + preTop);
  37.                 scrollElem.scrollTop = freshScrollHeight + 2;
  38.                 scrollElem.scrollTop += 1;
  39.             }
  40.         }
  41.         setTimeout(scrollUp, 5);//控制速度 越大越慢
  42.     };
  43.     var restartScroll = function () {
  44.         scrollElem.scrollTop = 0;
  45.         setTimeout(scrollUp, 50);
  46.     };
  47.     jQuery(tableDom).hover(function () {
  48.         stopscroll = true;
  49.     }, function () {
  50.         stopscroll = false;
  51.     });
  52.     //控制开始是否延迟
  53. setTimeout(restartScroll, 0);
  54. }
  55. /*
  56. *复制表格每行内容
  57. */
  58. function copyTableRows(tableDom) {
  59.     var tBody = tableDom.firstElementChild.children[1];
  60.         var rowList = tBody.children;
  61.     var rowLength = rowList.length;
  62.     for(var i=0 ; i<rowLength ; i++){
  63.         var trow = rowList[i];
  64.         var newTR = tBody.insertRow(rowLength+i);
  65.                 newTR.style.height = trow.style.height;
  66.                 copyRowCells(trow , newTR);
  67.     }
  68. }
  69. /*
  70. *复制每行的列内容
  71. */
  72. function copyRowCells(trow , newTR) {
  73.     var cellList = trow.children;
  74.     var cellLength = cellList.length;
  75.     var cellHtml = "";
  76.     for(var i=0 ; i<cellLength ; i++){
  77.     var cell = cellList[i];
  78.         cellHtml += cell.outerHTML;
  79.     }
  80.     newTR.innerHTML = cellHtml;
  81. }
  82. //复制表格行内容
  83. copyTableRows(document.getElementById('GRID1'));
  84. autoScrollTable(document.getElementById('GRID1'),document.getElementById("HHH2").clientHeight);
  85. copyTableRows(document.getElementById('GRID2'));
  86. autoScrollTable(document.getElementById('GRID2'),document.getElementById("HHH3").clientHeight);
复制代码


zm1997 数据达人Lv4

发表于2021-1-12 16:45

只看该作者

取消 关注该作者的回复

7#

xxxl 发表于 2021-1-12 16:36
我本地试了轮播组件可以这是表样
解压后这里导入

不好意思,我需要的不是这个效果。而是轮换组件等3-5秒后自动从第一页换到第二页的操作

xxxl 数据领袖Lv6

发表于2021-1-12 16:49

只看该作者

取消 关注该作者的回复

8#

zm1997 发表于 2021-1-12 16:45
不好意思,我需要的不是这个效果。而是轮换组件等3-5秒后自动从第一页换到第二页的操作 ...

那就试试这个帖子https://bbs.esensoft.com/thread-132648-1-1.html

zm1997 数据达人Lv4

发表于2021-1-12 16:55

只看该作者

取消 关注该作者的回复

9#

xxxl 发表于 2021-1-12 16:49
那就试试这个帖子https://bbs.esensoft.com/thread-132648-1-1.html

使用的就是这个方法,但是好像它不能自己动

xxxl 数据领袖Lv6

发表于2021-1-12 17:38

只看该作者

取消 关注该作者的回复

10#

zm1997 发表于 2021-1-12 16:55
使用的就是这个方法,但是好像它不能自己动

适用于bi ,不适用于abi需要重新写

zm1997 数据达人Lv4

发表于2021-1-12 17:41

只看该作者

取消 关注该作者的回复

11#

xxxl 发表于 2021-1-12 17:38
适用于bi ,不适用于abi需要重新写

需要在那部分进行调节?

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号