2017-07-24 215 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