2015-03-31 59 views
0

我正在练习一些JavaScript,我想弄清楚如何将屏幕左侧的div移动到右侧。我在一个单独的文件中做了这个测试,并首先测试它,但是,如果我创建一个类并将其中的函数和变量停止工作,并且Firebug不会返回任何错误。谁能帮我? 这里是我想出代码:写入类后不工作

function crear_div(){ 
    this.pos_x  = 10; 
    this.pos_y  = 10; 
    this.x_min = 10; 
    this.x_max = 500; 
    this.y_min = 10; 
    this.y_max = 500; 

    this.incremento = 10; 
    this.estado = 0; 
    this.id_elemento = "pelota"; 

    this.f0 = f0; 
    this.f2 = f2; 

} 

function f0(){ 
    this.pos_x = this.pos_x + this.incremento; 
    document.getElementById(this.id_elemento).style.left = this.pos_x + "px"; 
    if (this.pos_x >= this.x_max){ 
     this.estado = 1; 
    } 
} 

function f2(){ 
    this.pos_x = this.pos_x - this.incremento; 
    document.getElementById(id_elemento).style.left = this.pos_x + "px"; 
    if (this.pos_x <= this.x_min){ 
     this.estado = 0; 
    } 
} 

function desplazar(){ 
    switch(this.estado){ 
    case 0: 
     this.f0(); 
     break; 
    case 1: 
     this.f2(); 
     break; 
    } 
} 

window.setInterval(function() {this.desplazar();}, 250);    
+0

'this'没有在'setInterval的设置'功能。 – Barmar 2015-03-31 02:38:53

+0

你永远不会调用'crear_div'。 – Barmar 2015-03-31 02:39:37

回答

0

你需要创建一个类的对象,并在间隔功能使用:

var the_div = new crear_div(); 
window.setInterval(function() { 
    the_div.desplazar(); 
}, 250);