簡體   English   中英

Window.load不起作用

[英]Window.load doesn't working

有人可以告訴我為什么下一個代碼不起作用?

var nump = 0;
 function point() {
  nump++;
  document.getElementById('point').style.margin = nump + 'px 0px 0px';
 }
window.onload = point();

我在窗口加載時嘗試使div移動,謝謝大家。

分配一個名為function的事件處理程序是在沒有()的情況下完成的

DEMO基於你的小提琴

var nump = 100; // setting a value that actually is visible
function point() {
  nump++;
  document.getElementById('point').style.margin = nump + 'px 0px 0px';
}
window.onload = point;

除非命名函數返回一個函數。

因為你使用jQuery:

var nump = 0;
function point() {
  nump++;
  document.getElementById('point').style.margin = nump + 'px 0px 0px';
}
$(function() {
  point(); // will move 1 pixel
});

也許你的意思是

$(function() {
  setInterval(function() {
    point(); // will move 1 pixel
  },100); // move one pixel every 100ms
});

擴展@ mplungjan的答案 :您應該只使用JavaScript分配必要的樣式,而不需要更改除margin-top屬性之外的任何其他內容:

var nump = 0;
window.onload=function() {
  nump++;
  document.getElementById('point').style.marginTop = nump;
}

1)您需要移交函數引用:

window.onload = point;

2)你的評論

我在窗口加載時嘗試使div移動

讓我假設,你想以遞歸方式調用函數,這應該通過以下方式完成:

function point() {
    nump+=4;
    document.getElementById('point').style.margin = nump + 'px 0px 0px';
    // exemplary constraint to exit the loop, change to your liking
    if (nump < 300){setTimeout(point,20);}
}

你修改過的例子

通過移動,你想說,像這樣: http//jsfiddle.net/myC7J/1/

這將添加如下setInterval

var interval;
window.onload = function(){ interval = setInterval(point, 100);}

編輯:

因為你似乎想制作一個游戲:如果你想在DOM中使用position: absolute ,為什么不使用position: absolutetopleft Else,你應該考慮使用Canvas。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM