10秒后从输入按钮清除背景图像

时间:2016-05-03 10:52:07

标签: javascript jquery html

我使用此代码在清除图像后将背景图像设置为我的页面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

2 个答案:

答案 0 :(得分: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秒后删除本地存储中的图像,那么在setTimeout函数中删除jstorage脚本

答案 1 :(得分:0)

localStorage.clear();

我认为它解决了我的问题