Javascript 背景为颜色,背景为图像
我知道这个问题有点长,但所有的问题都是相关的,所以我把它们放在这里。我从过去的两天开始尝试这个问题,我很接近找到解决方案。但是css或脚本代码中出现了一些错误,我不明白在哪里 以下是我收到的关于我的问题的回复 你可以看我的问题 为了测试它,我简单地复制并粘贴了链接中给出的代码,并保存为demo.html。内容正是这样:Javascript 背景为颜色,背景为图像,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我知道这个问题有点长,但所有的问题都是相关的,所以我把它们放在这里。我从过去的两天开始尝试这个问题,我很接近找到解决方案。但是css或脚本代码中出现了一些错误,我不明白在哪里 以下是我收到的关于我的问题的回复 你可以看我的问题 为了测试它,我简单地复制并粘贴了链接中给出的代码,并保存为demo.html。内容正是这样: <body> <header> <h1>File API - FileReader (Text)</h1>
<body>
<header>
<h1>File API - FileReader (Text)</h1>
</header>
<article>
<label for="files">Select a file: </label>
<input id="files" type="file" onchange="readURL(this);" /><br>
div<div id="result"></div><br>
img<img src='' id="img"><br>
</article>
<script>
var readURL;
window.onload = function() {
//Check File API support
readURL = function(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = (function (tFile) {
return function (evt) {
//$('#img').attr('src', evt.target.result);
$('#result').css({'background-image': 'url('+evt.target.result+')','background-size': '200px 200px', 'background-repeat': 'no-repeat', 'background-position':'center'})
};
}(input.files[0]));
reader.readAsDataURL(input.files[0]);
}
}
}
</script>
</body>
文件API-文件读取器(文本)
. 我至少能设置背景。但即使我在背景后使用背景大小,或者不考虑引号中的属性值对,也不会调整背景图像的大小。我已经接受了答案,因为fiddle正在工作,但问题仍然没有解决。是不是jQuery的.css()函数在这种情况下不能很好地接受多个值
一定也不行。但它起作用了
问题3:
另一个关注点是多次点击切换背景图像,例如,红色背景按钮的onclick变为红色,但上传图像的onclick被上传,背景变为图像。现在我已经在一个页面中实现了这两个功能。我可以根据需要显示代码。问题是,一旦我将图像设置为背景,我就不能简单地将其更改回颜色。请注意,背景中的颜色更改脚本位于图像更改脚本之前
您可以根据自己的专业知识选择回答任何问题。任何帮助、链接或研究都将不胜感激。您需要这种风格才能使用:
#result {
height: 300px;
width: 100%;
}
您还需要添加查询:
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
针对您的第一个问题
我不明白为什么你的小提琴有一个错误“readURL”是未定义的
但是因为您使用了jquery,所以我附加了事件并用jquery调用它
现在它可以工作了:
$(function () {
$("#files").on('change', readURL);
});
//Check File API support
function readURL() {
var input = this;
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = (function (tFile) {
return function (evt) {
//$('#img').attr('src', evt.target.result);
$('#result').css({ 'background-image': 'url(' + evt.target.result + ')', 'background-size': '200px 200px', 'background-repeat': 'no-repeat', 'background-position': 'center' })
};
}(input.files[0]));
reader.readAsDataURL(input.files[0]);
}
}
您是否有一个fiddle示例说明图像未显示在何处?@webkit ok此处是指向fiddle not working的链接尝试了此操作,但没有结果。div
在你的问题中,我复制了上面的代码,它工作正常。你用的是什么浏览器?我认为它不起作用,因为您没有添加查询。请参见上面我的回答headonLoad中的不换行:换行代码以便在onLoad窗口事件onDomReady中运行:换行代码以便在onDomReady窗口事件中运行无换行:不换行JavaScript代码,请将其放在“无换行:不换行JavaScript代码”部分,将其放在第节“readURL”中的错误未定义是因为如果需要问题2和3的帮助,您需要将jQuery框架设置为无换行而不是onLoad。。请让它更容易,并张贴准确的问题到小提琴一样,你为1。。