내가 만들려고 해요 웹 페이지가에 양방향 슬라이딩 애니메이션이 작동합니다. 그러나 애니메이션은 부분적으로 만 작동합니다. 더 정확하게 말하면, 애니메이션은 위로 미끄러 져 나오지 만 중간에 만 미끄러진다. 여기 내 자바 스크립트의 다음 hideLayer 함수의 네 번째 줄에자바 스크립트 애니메이션은 한 방향으로 만
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)와 동일한 그것을 설정하는 것은 단지를 이동하는 요소를 유발한다는 사실에 기인한다 트리거 요소를 클릭 한 후 양쪽 픽셀이 거의 없습니다.
<div id="mainbutton" onclick="showLayer('mainmenu'); hideLayer('mainmenu')"></div>
<div id="mainmenu" style="position: absolute; top: 690px; left: 9px;"
onclick="showLayer('mainmenu')"> </div>
그리고 여기의 스타일과 같습니다 : 여기에 내가 애니메이션에 전념 한 HTML 요소의
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 함수의 if 조건에서만 문제가 발생했다고 생각했습니다. 그러나 그것을 조정 한 후에 나는 지금 확실하지 않습니다.
코드에서 논리의 문제가 있습니다 :
mainbutton은 흰색 바탕에 흰색이기 때문에 데모에서는 보이지 않습니다.또한, 당신은 showLayer와 hideLayer에 'mainmenu'를 전달하고 있습니다. 그러나 어느 메소드도 그것을 사용하지 않는 것 같습니다. – zod
기본 버튼의 색상을 변경 하시겠습니까? – Ru1138
나는이 피들을 더 분명하게 만들었습니다 : http://jsfiddle.net/7egr7/ 그리고 왜 작동하지 않는지 찾으려고 노력하고 있습니다. – Mageek