2017-07-24 217 views
0

我已经在过去的几个月来回试图解决这个问题,但我无处可去,无论我的企图......我终于在我的智慧结束,真的需要帮助我恐惧我会失去意愿继续..clearInterval,停止鼠标悬停计时器

如果任何人都可以看到我的错误/ allthough除了图像本身没有直接mousedover作为图像显示在HTML页面,没有明显的,我会如果有人可以帮助我解决这个小但令人沮丧的异常...我很感谢你所有提前..

这里是代码....我发现,我确实可以调用停止的功能从HTML页。我的解决方案我从来没有尝试过在我的匆忙。

var tim=8000 



function stopper(){ 

clearInterval(foot); 


console.log (tim) 
} 



function fader(){ 


var element = document.getElementById("dynamic-image2"); 
element.style.transitionDuration = "2s"; 
<!---the grabbed element + style [ execute type of effect ] = ' dimension of effect (1 ,2)';---> 
element.style.opacity=4; 
} 

function fader2(){ 

var element = document.getElementById("dynamic-image2"); 
element.style.transitionDuration = "2s"; 
<!---the grabbed element + style [ execute type of effect ] = ' dimension of effect (1 ,2)';---> 
element.style.opacity=0; 
} 

    var timer=tim 
    var timer2=timer/2 

setInterval(fader2,timer2); 

(function() { 
    'use strict'; 



    var preloads=[],c, 
     d=document,di=d.getElementById('dynamic-image2'), 
     dh=d.getElementById('dynamic-href2'), 
     url=[ 
      'linkmywebsite.ml','chatmagbingo.com','ilkestonwebdesign.com','ipost.com','happypetsuk.com','www.linkmywebsite.co.uk','fireworksnottingham.co.uk','www.linkmywebsite.co.uk','ilkestonfastfood.com','www.linkmywebsite.co.uk','de-signz.co.uk','www.linkmywebsite.co.uk','cctautos.com','grundyskips.co.uk','www.m8drivingschools.co.uk','www.apipedream.co.uk','www.crazyskips.com','www.linkmywebsite.co.uk','www.linkmywebsite.co.uk','www.linkmywebsite.co.uk','www.linkmywebsite.co.uk','www.linkmywebsite.co.uk','www.competitiveremovals.co.uk','www.linkmywebsite.co.uk','www.linkmywebsite.co.uk','heartinternet.co.uk','winnerbingo.com','www.linkmywebsite.co.uk','linkmywebsite.ml','katyperry.com','perfectpizza.com','youtube.com','google.com','facebook.com','twitter.com','linkmywebsite.ml','linkmywebsite.ml','gumtree.com' 
      ]; 

     /*adjust to suit */ 






function preload(){ 
for(c=0;c<arguments.length;c++) { 
    preloads[preloads.length]=new Image(); 
    preloads[preloads.length-1].src=arguments[c]; 
    } 
    c=0; 

} 


preload('yournewsite2.png','1ad.jpg','2ad.jpg', 
'3ad.jpg','4ad.jpg','5ad.jpg', 
'6ad.jpg','7ad.jpg','8ad.jpg', 
'9ad.jpg','10ad.jpg','11ad.jpg', 
'12ad.jpg','13ad.jpg','14ad.jpg', 
'15ad.jpg','16ad.jpg','17ad.jpg', 
'18ad.jpg','19ad.jpg','20ad.jpg', 
'21ad.jpg','22ad.jpg','23ad.jpg', 
'24ad.jpg','25ad.jpg','26ad.jpg', 
'27ad.jpg','28ad.jpg','29ad.jpg', 
'30ad.jpg','youtubead.png','googlead.png', 
'facebookad.png','twitterad.png','yournewsite2.png', 
'yournewsite2.png','gumtreead.png'); 




setInterval(fader, timer); 

const的脚=的setInterval( 函数(){

dh.href='http://'+url[c]; 
    di.src=preloads[c].src; 
    di.alt=preloads[c].src.substring(preloads[c].src.lastIndexOf('/')+1); 
    c++; 
if(c==preloads.length) { 
    c=0; 
    } 
},timer); 



}()) 
+0

把它放在一个JSFiddle可能会更容易帮助你什么时候实际上调用timerstop()? –

+0

好的,所以你要做的就是立即调用匿名函数,它不会返回函数,这就是'setInterval'所需要的。你需要立即运行吗?如果不是,请尝试删除immeidate调用。如果是这样,创建一个常规函数(又名非匿名)并将其作为参数传递,然后同时(分别)调用它。 – jhpratt

+0

我从HTML页面调用timerstop函数,这是在脚本之前不幸运行的。而且,它也是。不管怎么样,我尝试我得到undecleared元素,因为脚本必须在图像显示后运行,并且脚本中的塞子函数必须在const之后运行...所以它看起来像一个完整的重写。 – russbaker2016

回答

1

你必须做的是存储在一个变量的时间间隔,然后传递作为参数给clearInterval。

所以作为一个简单的例子

const foo = setInterval(func, 1000); 
clearInterval(foo); 
+0

是的,我有那个部分。我刚刚找到了我认为的解决方案。 。我现在会反馈你的信息很多谢谢... Iv只是改变了原来的代码,虽然 – russbaker2016

+0

如果你能看到我应该如何做这个让我知道,allthough我会测试你的答案也。非常感谢。 – russbaker2016

+0

你给的例子不这样做,这就是我发布我的答案的原因。 – jhpratt