JavaScript中的window.innerWidth

时间:2014-08-18 19:35:28

标签: javascript resolution

这是我的代码:

<body>
    <header></header>
    <div id="slider" class="slider">
        <p>Slider content</p>
    </div>
    <script src="jas.js"></script>
</body>


var divPos = 50;
var direction = "L";

function preparepage() {
    document.getElementById("slider").style.position = "absolute";
    document.getElementById("slider").style.left = divPos + "px";
    document.getElementById("slider").style.top = "50px";
    animateDiv = setInterval(beginAnimate,50);
}

function beginAnimate () {
    if (direction == "L") {
        divPos+=50;
        if (divPos == 1300) {
            direction = "R";
        }
    } else if (direction == "R"){
        divPos-=50;
        if (divPos == 150) {
            direction = "L";
        }
    }
    document.getElementById("slider").style.left = divPos + "px";
}

window.onload = function () {
    setTimeout(preparepage,200);
};

我希望#slider从左到右,当它到达某一点时返回。我的代码运行正常,但我尝试了这种方式:

if (direction == "L") {
    divPos+=50;
    if (divPos == window.innerWidth - 300) {
        direction = "R";
    }
}

它将永远留下。 为什么会这样? 我能做些什么才能让它在某个时刻回归,不知道什么是屏幕分辨率?

1 个答案:

答案 0 :(得分:0)

使用:

if (divPos > window.innerWidth - 300) {

除非窗口的宽度是50的倍数,否则将divPos增加50赢不会恰好击中innerWidth - 300,所以你需要不那么严格。