브라우저에서 왼쪽에서 오른쪽으로 div (높이 50px 및 50px) 애니메이션을 적용하고 싶습니다.자바 스크립트를 사용하여 상자를 이동하는 방법 초당 10 픽셀, 초당 10 픽셀
공유 할 코드가 많지 않습니다. 내 HTML CSS 부분을 공유 할 수 있습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.box{
width:100px;
height:100px;
position: absolute;
}
.blue{
background:#00f;
}
.position{
margin-top: 50px;
}
</style>
</head>
<body>
<div class="box blue position" id="move_box"> </div>
<script>
</script>
</body>
</html>
내가 조건에 따라 왼쪽에서 오른쪽으로 다이빙을 애니메이션하기 위해 여러분의 도움이 필요합니다 "바로 10 픽셀, 초당 아래로 10 픽셀 이동합니다."
참고 : JavaScript에서만 가능합니다.
고맙습니다.
내 스크립트 코드 아래
<script>
var box = document.getElementById('move_box'),
boxPos = 0,
boxLastPos = 0,
boxVelocity = 0.01,
limit = 300,
lastFrameTimeMs = 0,
maxFPS = 60,
delta = 0,
timestep = 1000/60,
fps = 60,
framesThisSecond = 0,
lastFpsUpdate = 0,
running = false,
started = false,
frameID = 0;
function update(delta) {
boxLastPos = boxPos;
boxPos += boxVelocity * delta;
// Switch directions if we go too far
if (boxPos >= limit || boxPos <= 0) boxVelocity = -boxVelocity;
}
function draw(interp) {
box.style.left = (boxLastPos + (boxPos - boxLastPos) * interp) + 'px';
box.style.top = (boxLastPos + (boxPos - boxLastPos) * interp) + 'px';
console.log(box.style.top);
}
function panic() {
delta = 0;
}
function begin() {
}
function end(fps) {
/*box.style.backgroundColor = 'blue';*/
}
function stop() {
running = false;
started = false;
cancelAnimationFrame(frameID);
}
function start() {
if (!started) {
started = true;
frameID = requestAnimationFrame(function(timestamp) {
draw(1);
running = true;
lastFrameTimeMs = timestamp;
lastFpsUpdate = timestamp;
framesThisSecond = 0;
frameID = requestAnimationFrame(mainLoop);
});
}
}
function mainLoop(timestamp) {
// Throttle the frame rate.
if (timestamp < lastFrameTimeMs + (1000/maxFPS)) {
frameID = requestAnimationFrame(mainLoop);
return;
}
delta += timestamp - lastFrameTimeMs;
lastFrameTimeMs = timestamp;
begin(timestamp, delta);
if (timestamp > lastFpsUpdate + 1000) {
fps = 0.25 * framesThisSecond + 0.75 * fps;
lastFpsUpdate = timestamp;
framesThisSecond = 0;
}
framesThisSecond++;
var numUpdateSteps = 0;
while (delta >= timestep) {
update(timestep);
delta -= timestep;
if (++numUpdateSteps >= 240) {
panic();
break;
}
}
draw(delta/timestep);
end(fps);
frameID = requestAnimationFrame(mainLoop);
}
start();
</script>
만 자바 스크립트, jQuery를-UI는 괜찮아? – olahell
그것은 나를 위해 파이어 폭스에서 작동합니다 : http://jsbin.com/ravayucila/edit?html,js,console,output – yellowsir
@olahell :: 자바 스크립트에서만 ... –