1

此代码在前端的指定时间间隔内动态移动一些仪表板文件。现在,一旦我将鼠标移到任何特定的仪表板文件上,它就不会停止。所以建议我停止鼠标悬停动态动作的代码。

var i=0;

var stp;

var dd = ['/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2FDashboards&file=FPBI_Map.wcdf',
          '/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2Fcss&file=AnalysisBasedonReg.wcdf',
          '/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2Fcss&file=AnalysisBasedonTime.wcdf'];
function k()
{
self.setInterval("clock()",8000);
}
function clock()
{
document.getElementById('mainfrm').src =dd[i];
i++;
if(i==4)
{
i=0;
}
}


function StopFunction(){
clearInterval(stp);
}

布局页面:

<div class="map">
<body onload="k()" onmouseover="StopFunction()">
<iframe src="/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2Fcss&file=FPBIImg.wcdf" style="width:675px;height:690px;overflow:hidden" frameborder='0' id="mainfrm">
</iframe>
</div>
</div>
.

- 编辑

现在 onmouseover 功能正在工作,但是当我移除鼠标时,没有任何动作发生。我尝试使用 onmouseout 功能。任何人都可以建议我在移除鼠标后保留或继续现有的旧功能的 js 功能。

4

2 回答 2

4
var stp;
function k()
{
 stp=setInterval(function(){clock()},8000);
}
function clock()
{
 document.getElementById('mainfrm').src =dd[i];
 i++;
 if(i==4)
{
 i=0;
 }
 }

function StopFunction()
{
  clearInterval(stp);
}

<div class="map" onmouseover="StopFunction()">
于 2012-09-26T10:01:49.887 回答
2

试试这个 - 完整的代码 - 所有不显眼 唯一要考虑的是全局变量,这是不受欢迎的

演示

<html>
<head>
<script>
var tId, urlIndex=0, dd = ['/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2FDashboards&file=FPBI_Map.wcdf',
      '/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2Fcss&file=AnalysisBasedonReg.wcdf',
      '/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2Fcss&file=AnalysisBasedonTime.wcdf'];

function clock() {
  document.getElementById('mainfrm').src =dd[urlIndex];
  urlIndex++;
  if(urlIndex>=dd.length) {
    urlIndex=0;
  }
}
function k() {
  tId = setInterval(clock,8000);
}
window.onload=function() {
  k(); // start the script
  var mapDiv = document.getElementById("mapDiv");
  mapDiv.onmouseover=function() {
    clearInterval(tId)
  }

  // the following MAY trigger when over the iframe - remove if necessary
  mapDiv.onmouseout=function() {
    k();
  }

}
</script>
</head>
<body>

  <div id="mapDiv" class="map">
    <iframe src="/pentaho/content/pentaho-cdf-dd/Render?solution=FPBI&path=%2Fcss&file=FPBIImg.wcdf" style="width:675px;height:690px;overflow:hidden" frameborder='0' id="mainfrm"></iframe>
  </div>
</body>
</html>
于 2012-09-26T09:51:47.160 回答