html5选择图像并进行操作
html5 select image and manipulate
我正在创建一个应用程序,希望用户在其中上传带有HTML5 <input type="file"/>
的图像
我知道浏览器出于安全考虑限制了获取图像的路径,所以我不能复制图像路径并将其放在我想要的地方。
基本上,我希望用户提交一个图像,我希望能够通过将其设置为div的背景图像并将图像放在其他地方来操作图像。希望通过改变它的来源。这不是一个服务器端应用程序,所以PHP或任何服务器端语言都不是一个选项。
示例:如果用户单击按钮,则用户提交的图像可以设置为其他div的background-image: url('image-path')
,并应用于其他图像标签。
还没有在多个浏览器上进行测试,但可以尝试以下操作:
<input type="file" id="file">
$('#file').change(function(evt){
var img = $('<img/>');
var div = $('<div class="with-image"/>');
$(document.body).append(img);
$(document.body).append(div);
var reader = new FileReader();
reader.onload = (function(img) {
return function(ev) {
var image = ev.target.result;
img[0].src = image;
div.css('background-image', 'url("' + image + '")');
};
})(img);
var file = evt.target.files[0];
reader.readAsDataURL(file);
});
这是一把小提琴。
您可能希望使用新的File API来实现这一点,而这实际上是在没有服务器的情况下实现这一目标的唯一方法。这里有一个例子:
JSFiddle:http://jsfiddle.net/41w6f7n9/
;(function(window, undefined) {
var
doc = window.document,
userFile = doc.getElementById('userFile'),
divPreviews = doc.querySelectorAll('.preview'),
imgPreview = doc.getElementById('img-preview'),
// We will read the file as a Data URL.
fileReader = new FileReader();
var fileutil = {
init: function() {
userFile.addEventListener('change', function(e) {
fileutil.readFile(this.files[0]);
}, false);
},
readFile: function(file) {
var self = this;
// When done reading.
fileReader.onload = function(e) {
if (e.target.readyState === 2) { // 2 means DONE
self.preview(e.target.result);
}
};
// Start reading the file as a Data URL and wait to complete.
fileReader.readAsDataURL(file);
},
preview: function(imageURL) {
imgPreview.src = imageURL;
divPreviews[0].style.backgroundImage = 'url('+imageURL+')';
divPreviews[1].style.backgroundImage = 'url('+imageURL+')';
}
};
fileutil.init();
}(this));
HTML:
<form>
<input type="file" id="userFile">
</form>
<h1>Image Preview</h1>
<img src="" width="400" id="img-preview">
<h1>Div preview 1</h1>
<div id="preview1" class="preview"></div>
<h1>Div preview 2</h1>
<div id="preview2" class="preview"></div>
相关文章:
- javascript对象操作:根据指定条件选择属性
- 用于选择/文本框操作的JavaScript
- 选择具有ID的父级的第一个子级以外的所有子级,然后应用操作
- CSS选择器与And操作组合'&&'
- 选择首次单击浏览器操作时打开的弹出窗口
- Jquery - 如果条件为真,则遍历选择器并执行某些操作
- JQuery 操作取决于选择的单选按钮 - if/else
- 使用jquery操作::选择
- 选择文件时的操作
- 单击选择菜单中的选项时的操作
- 选择菜单的操作中的成员2参数
- 根据用户在asp.net网站中选择的弹出窗口使用JavaScript操作网页
- 使用鼠标移动操作选择选项
- 使用 jQuery 操作“选择”中的“删除项”
- 如何动态操作选择选项
- 操作选择和检索父属性
- 如何使用jquery操作选择框
- 打开后无法使用 JavaScript 操作选择标签
- 使用jquery从数据库中记录的现有值操作选择选项
- 页面加载时操作选择多个列表设置