2016-05-03 81 views
0

我使用此代碼將圖像設置爲我的頁面10秒後,該圖像被清除,但當我重新加載頁面時,我有最後一個圖像在背景上使用。10秒後從輸入按鈕清除背景圖像

如何徹底清除圖像?

另一個問題是,我在繪圖web應用程序中使用此背景按鈕,有時在更改背景後應用程序凍結。

$(switchBackground); 

var oFReader = new FileReader(), 
    rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i; 

oFReader.onload = function(oFREvent) { 
    localStorage.setItem('b', oFREvent.target.result); 
    switchBackground(); 
}; 

function switchBackground() { 
    $('body').css('background-image', "url(" + localStorage.getItem('b') + ')');  
} 

function loadImageFile(testEl) { 
    if (! testEl.files.length) { return; } 
    var oFile = testEl.files[0]; 
    if (!rFilter.test(oFile.type)) { alert("You must select a valid image file!"); return; } 
    oFReader.readAsDataURL(oFile); 
} 
<input id="test" type="file" onchange="loadImageFile(this)" /> 

demo

+0

'10秒後該圖像被清除'我看不到你在哪裏定義這個。 –

+0

您正在設置本地存儲項目以存儲背景圖像,然後在頁面加載時再次加載。 10秒後沒有任何東西從本地存儲清除背景。我不確定爲什麼你使用本地存儲無論如何,如果你只是設置一個背景圖像10秒,並刪除它。 – spaceman

回答

0

,如果你需要經過10秒鐘,清除背景,所以請更改功能,按照下文。

var obj; 
function switchBackground() { 
    $('body').css('background-image', "url(" + localStorage.getItem('b') + ')'); 
    clearTimeout(obj); 
    obj = setTimeout(function(){ 
       $('body').css('background-image','none'); 
      }, 10000); 
} 

,如果你也想在10秒以除去在本地存儲圖像,以便刪除jstorage腳本setTimeout函數

+0

我試過function switchBackground(){ \t $('body')。css('background-image',「url(」+ localStorage.getItem('b')+')'); \t \t var delay = 10000; //1分鐘 的setTimeout(函數(){ document.body.style.backgroundImage = '無'; \t變種延遲= 0;} ,延遲); } –

+0

如果你不清除超時,所以可能是衝突超時的機會,否則它是好的。 –

0
localStorage.clear(); 

我認爲它解決了我的問題