まず第一に、これが私が助けを必要としているサイトの基本的なコードです: 編集のために底をチェックしてください
アニメーション自体について少し助けてください。div1にいて、任意のキーを押すと、それは魅力のように機能するからです。しかし、私がdiv 3にいて、div 2に移動したい場合、たとえば、最初にdiv 1をロードしてから、div 2に移動します。なぜそれが行われるのかはわかりますが、回避する方法を考えることはできません。それ。何か案は?
また、アニメーションがすでに再生されている場合は、入力から関数を一時停止したいと思います(したがって、数値をスパムしたり、アニメーションを台無しにしたりすることはできません)。どうすれば簡単にそれを行うことができますか?
ありがとう!
編集
怠惰ではないことを私に求めている数人の非常にいい人たちのために、OPは次のことを提供します:http: //jsfiddle.net/G4PXj/7
また; http://codepen.io/anon/pen/zJsBH
また、HTMLボックスを押してから2、3、または4を押し、アニメーションがFOVに読み込まれるまで数秒待ちます。
HTML:
<div id="fourth" class="hidden">Fourth box
<button onClick="fubar('first');">First page</button>
</div>
<div id="third" class="hidden">Third div</div>
<div id="second" class="hidden">Som text in the second</div>
<div id="first">Some content
<button onClick="fubar('second');">Second page</button>
</div>
スタイル:
@charset "utf-8";
body {
background-color: #fff;
margin: 0;
padding: 0;
overflow: hidden;
}
#first {
width: 100%;
height: 100%;
position: absolute;
top: 0;
color: #fff;
box-shadow: 0 0 40px #333;
background-color: #000;
}
#second {
width: 100%;
height: 100%;
position: absolute;
top: 0;
background-color: green;
}
#third {
width: 100%;
height: 100%;
position: absolute;
top: 0;
background-color: red;
}
#fourth {
width: 100%;
height: 100%;
position: absolute;
top: 0;
background-color: blue;
}
.hidden {
display: none;
}
.test {
-moz-animation-name: wat;
-webkit-animation-name: wat;
-moz-animation-duration: 4s;
-webkit-animation-duration: 4s;
-moz-animation-timing-function: ease-out;
-webkit-animation-timing-function: ease-out;
-moz-animation-iteration-count: 1;
-webkit-animation-iteration-count: 1;
-moz-animation-direction: normal;
-webkit-animation-direction: normal;
z-index: 100;
display: block;
}
@-moz-keyframes wat {
0% {margin-left:-3000px;}
60% {margin-left: 200px;}
100% {margin-left: 0;}
}
@-webkit-keyframes wat {
0% {margin-left:-3000px;}
60% {margin-left: 200px;}
100% {margin-left: 0;}
}
Javascript:
function clearAll() {
document.getElementById('first').className = '';
document.getElementById('second').className = '';
document.getElementById('third').className = '';
document.getElementById('fourth').className = '';
}
function troll(objectID) {
document.getElementById(objectID).className += ' test';
}
function fubar(objectID) {
clearAll();
troll(objectID);
}
function KeyCheck(e) {
var KeyID = (window.event) ? event.keyCode : e.keyCode;
switch (KeyID) {
case 49:
clearAll();
troll('first');
break;
case 50:
clearAll();
troll('second');
break;
case 51:
clearAll();
troll('third');
break;
case 52:
clearAll();
troll('fourth');
break;
}
}
document.onkeyup = KeyCheck;