使用 HTML 输出标签查看可缩放图像并分配 src
Working with HTML output tag to view scalable image and assign src
我有以下代码,其中 returns 使用来自 HTML 的输出属性的图像。我希望能够 scale/edit 此图像具有最大宽度和最大高度。我也想给这个图片分配一个 SRC。
我的HTML:
<input type="file" id="files" name="files[]" file-model="myFile"/>
<output id="list" class="resize-image" alt="Image"></output>
我的 JS:
var handleFileSelect = function (evt) {//already set up for multiple files; not what i want to do.
var files = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var span = document.createElement('span');
span.innerHTML = ['<img height="35" width="75" class="thumb" src="', e.target.result,
'" title="', escape(theFile.name), '"/>'].join('');
document.getElementById('list').insertBefore(span, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
所以如果你真的想在这种情况下使用 css
属性,你必须使用 style
属性
内联注入它们
var span = document.createElement('span');
span.innerHTML = ['<img height="35" width="75" class="thumb" src="',
e.target.result,
'style="max-height:25px; max-width:25px;"', // You can manipulate that dynamically using
'" title="',
escape(theFile.name),
'"/>'].join('');
document.getElementById('list').insertBefore(span, null);
};
检查动态 css 操作:http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_css_setcolor
为什么不在 css 中添加 .thumb{max-height:35px;max-width:75px;}
,当您创建新元素时设置 class 属性,css 将应用于该元素。另外,为什么要创建跨度然后将 innerHTML 设置为图像?为什么不直接创建图像?
CSS
.thumb{max-height:35px;max-width:75px;}
创建图像
var Img = document.createElement('img');
// .setAttribute(AttributeType, Attribute Value);
Img.setAttribute('class','thumb'); //Class Attribute
Img.setAttribute('src',e.target.result);//Src Attribute
document.getElementById('list').insertBefore(Img, null);
希望对您有所帮助。编码愉快!
我有以下代码,其中 returns 使用来自 HTML 的输出属性的图像。我希望能够 scale/edit 此图像具有最大宽度和最大高度。我也想给这个图片分配一个 SRC。
我的HTML:
<input type="file" id="files" name="files[]" file-model="myFile"/>
<output id="list" class="resize-image" alt="Image"></output>
我的 JS:
var handleFileSelect = function (evt) {//already set up for multiple files; not what i want to do.
var files = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var span = document.createElement('span');
span.innerHTML = ['<img height="35" width="75" class="thumb" src="', e.target.result,
'" title="', escape(theFile.name), '"/>'].join('');
document.getElementById('list').insertBefore(span, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
所以如果你真的想在这种情况下使用 css
属性,你必须使用 style
属性
var span = document.createElement('span');
span.innerHTML = ['<img height="35" width="75" class="thumb" src="',
e.target.result,
'style="max-height:25px; max-width:25px;"', // You can manipulate that dynamically using
'" title="',
escape(theFile.name),
'"/>'].join('');
document.getElementById('list').insertBefore(span, null);
};
检查动态 css 操作:http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_css_setcolor
为什么不在 css 中添加 .thumb{max-height:35px;max-width:75px;}
,当您创建新元素时设置 class 属性,css 将应用于该元素。另外,为什么要创建跨度然后将 innerHTML 设置为图像?为什么不直接创建图像?
CSS
.thumb{max-height:35px;max-width:75px;}
创建图像
var Img = document.createElement('img');
// .setAttribute(AttributeType, Attribute Value);
Img.setAttribute('class','thumb'); //Class Attribute
Img.setAttribute('src',e.target.result);//Src Attribute
document.getElementById('list').insertBefore(Img, null);
希望对您有所帮助。编码愉快!