用js改变img的src

时间:2015-09-17 19:15:21

标签: javascript html

使用以下代码,图像的src仅在" width-1.gif"之间变化。和" width-2.gif"。如何修复此代码以使src的值也为" width-3.gif"和" width-4.gif"当窗口宽度调整大小时?

var img = document.getElementById('img');

var changeSize = function () {
    if (document.documentElement.clientWidth >= 993) {
        img.setAttribute('src', 'images/width-1.gif')
    } else if (document.documentElement.clientWidth <= 992 || document.documentElement.clientWidth >= 871) {
        img.setAttribute('src', 'images/width-2.gif')
    } else if (document.documentElement.clientWidth <= 870 || document.documentElement.clientWidth >= 786) {
        img.setAttribute('src', 'images/width-3.gif')
    } else if (document.documentElement.clientWidth <= 785) {
        img.setAttribute('src', 'images/width-4.gif')
    }
};

window.addEventListener("resize", changeSize);

3 个答案:

答案 0 :(得分:4)

使用&amp;&amp; 代替 ||

var changeSize = function () {
    if (document.documentElement.clientWidth >= 993) {
        img.setAttribute('src', 'images/width-1.gif')
    } else if (document.documentElement.clientWidth <= 992 && document.documentElement.clientWidth >= 871) {
        img.setAttribute('src', 'images/width-2.gif')
    } else if (document.documentElement.clientWidth <= 870 && document.documentElement.clientWidth >= 786) {
        img.setAttribute('src', 'images/width-3.gif')
    } else if (document.documentElement.clientWidth <= 785) {
        img.setAttribute('src', 'images/width-4.gif')
    }
};

答案 1 :(得分:0)

您需要将OR(||)更改为AND(&amp;&amp;)。在上面的示例中,第一个条件document.documentElement.clientWidth <= 992将满足992以下的任何值,表达式将自动返回true。请尝试以下代码:

var changeSize = function () {
if (document.documentElement.clientWidth >= 993) {
    img.setAttribute('src', 'images/width-1.gif')
} else if (document.documentElement.clientWidth <= 992 &&     document.documentElement.clientWidth >= 871) {
    img.setAttribute('src', 'images/width-2.gif')
} else if (document.documentElement.clientWidth <= 870 && document.documentElement.clientWidth >= 786) {
    img.setAttribute('src', 'images/width-3.gif')
} else if (document.documentElement.clientWidth <= 785) {
    img.setAttribute('src', 'images/width-4.gif')
}

};

答案 2 :(得分:0)

你的第二个if语句检查if width<=922 OR width>=871,对于任何数字,它都是真的。可以使用&&轻松修复它,或者,您可以利用嵌套的for循环:

var changeSize = function () {
    if (document.documentElement.clientWidth >= 993) {
        img.setAttribute('src', 'images/width-1.gif')
    } else if (document.documentElement.clientWidth >= 871) {
        img.setAttribute('src', 'images/width-2.gif')
    } else if (document.documentElement.clientWidth >= 786) {
        img.setAttribute('src', 'images/width-3.gif')
    } else {
        img.setAttribute('src', 'images/width-4.gif')
    }
};