Javascript 背景为颜色,背景为图像

Javascript 背景为颜色,背景为图像,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我知道这个问题有点长,但所有的问题都是相关的,所以我把它们放在这里。我从过去的两天开始尝试这个问题,我很接近找到解决方案。但是css或脚本代码中出现了一些错误,我不明白在哪里 以下是我收到的关于我的问题的回复 你可以看我的问题 为了测试它,我简单地复制并粘贴了链接中给出的代码,并保存为demo.html。内容正是这样: <body> <header> <h1>File API - FileReader (Text)</h1>

我知道这个问题有点长,但所有的问题都是相关的,所以我把它们放在这里。我从过去的两天开始尝试这个问题,我很接近找到解决方案。但是css或脚本代码中出现了一些错误,我不明白在哪里

以下是我收到的关于我的问题的回复 你可以看我的问题

为了测试它,我简单地复制并粘贴了链接中给出的代码,并保存为demo.html。内容正是这样:

<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。。