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 に答える