我試圖創建的網頁上有一個雙向滑動動畫。然而動畫只是部分工作。更精確地說,動畫片滑落了,但它只能在中途滑落。這裏是我的JavaScript:在hideLayer功能的第四行Javascript動畫只適用於一個方向
function showLayer() {
var hiddenLayer = document.getElementById("mainmenu");
var layerPosition = parseInt(hiddenLayer.style.top);
if (layerPosition > 315) {
hiddenLayer.style.top = (layerPosition - 5) + "px";
setTimeout("showLayer()", 20);
}
}
function hideLayer() {
var hiddenLayer = document.getElementById("mainmenu");
var layerPosition = parseInt(hiddenLayer.style.top);
if (layerPosition <= 315) {
hiddenLayer.style.top = (layerPosition + 5) + "px";
setTimeout("hideLayer()", 20);
}
}
通知,我的條件設置爲< = 315,這是由於這樣的事實,將其設置等於315那麼元素只有一個移動點擊觸發元素後,任意方向上的像素數量都會減少以下是我已經專門爲動畫的HTML元素:
<div id="mainbutton" onclick="showLayer('mainmenu'); hideLayer('mainmenu')"></div>
<div id="mainmenu" style="position: absolute; top: 690px; left: 9px;"
onclick="showLayer('mainmenu')"> </div>
,這裏是樣式爲他們:
div#mainmenu { width: 600px; height: 350px; border-style: solid; background-color:
rgb(0, 0, 0) ; border-width: 3px; border-top-right-radius: 7px; border-top-left-
radius: 7px; }
div#mainbutton { position: absolute; top: 674px; left: 12px; width: 28px; height:
28px; border-style: solid; border-color: rgb(255, 255, 255); border-width: 1px; border-
radius: 4px; }
和提琴:http://jsfiddle.net/JAtLA/
我不得不把一些款式內嵌HTML,因爲動畫無法以其他方式工作。起初我認爲這個問題完全隱藏在hideLayer函數的條件下。但調整後,我現在不太確定。
mainbutton在演示中是不可見的,因爲它在白色背景下是白色的。另外,你正在傳遞'mainmenu'來顯示圖層並隱藏圖層,但是這兩種方法似乎都沒有使用它。 – zod
你想讓我改變主按鈕的顏色嗎? – Ru1138
我讓這個小提琴更加清晰:http://jsfiddle.net/7egr7/我試圖找出它爲什麼不起作用。 – Mageek