2011-01-08 8 views
0

왼쪽에 메뉴가 있습니다.li > 항목이 있고 오른쪽에는 항목 당 하나의 div가 4 개 있고 마우스로 항목을 입력하면 div 중 하나가 표시되어야합니다 . showDiv (ID)가 사업부를 보여주고 다른 사업부를 숨 깁니다Mootools : 메뉴에서 div 들간의 페이드 조절

<ul><li onmouseover="javascript:showDiv("div1");">one</li><li onmouseover="javascript:showDiv("div2");">two</li>(4 li)</ul> 

같은 뭔가.

div의 :

<div id="menu1">menu1</div> 
<div id="menu2" style="display:none;">menu2</div> 
<div id="menu3" style="display:none;">menu3</div> 
<div id="menu4" style="display:none;">menu4</div> 

자바 스크립트 코드 : 저작물 등은, 내가 여기에 붙여 넣기하지 것이다 addEvent

function fadeBetweenDivs(div1, div2) { 
$$(div1).fade("out"); 
(function(){ 
    $$(div1).setStyles({ 
    display: 'none', 
    opacity: 0 
    }); 
}).delay(150); 
(function(){ 
    $(div2).setStyles({ 
    display: 'block', 
    opacity: 0 
    }); 
}).delay(150); 
$$(div2).fade("in"); 
} 
function findDiv() { 
var arrayDiv = ["menu1","menu2","menu3","menu4"]; 
for (i=0;i<arrayDiv.length;i++) { 
    var blockDiv = document.getElementById(arrayDiv[i]).style.display; 
    if (blockDiv = "block") { 
    var viewedDiv = arrayDiv[i]; 
    return viewedDiv; 
    } 
} 
} 
function showDiv(showdiv) { 
var hidediv = findDiv(); 
fadeBetweenDivs(hidediv,showdiv); 
} 

코드입니다. 실행 된 함수는 showDiv ("div id")입니다. .

문제점을 찾을 수 없습니다. div를 퇴색시키는 방법이나 최소한 간단한 방법으로 말해 줄 수 있습니까?

코드에서 오류가 많이 있습니다

답변

0

(Mootools의, 나는 Joomla를 사용하고 작동). 문제를 이해하고 쉽게 해결책을 찾을 수 있도록 약간의 예를 만들려고했습니다. 도움이 되었기를 바랍니다.

http://goo.gl/TzlSt

당신이 의심이 있다면, 나 한테 물어 주시기 바랍니다)

+0

'$$ ('메뉴를 선택합니다.') (0) .setStyle ('디스플레이'페이드 '없음'.); - fade는 비동기 적이며 체인처럼 연결될 수 없으며, 디스플레이로 인해 그것을 숨기고 페이드를 0으로 트위닝하지만 사용자가 볼 수는 없습니다. fade ("0");'- 당신이 필요로하지만'el.set ("tween", {onComplete : function() {this.element.setStyle ("display", "none");}) 페이드 인처럼 다른 트윈을 수행하기 전에 .get ("tween"). removeEvents();'를 호출해야합니다. 선택기를 캐시해야합니다. 이는 대용량 데이터 세트와 구형 브라우저에서 매우 느려지거나 비효율적 일 수 있습니다. 추신. 이것은 1.2에 대한 것이므로 joomla 1.5가 아닙니다. (custom'd가 아닌 한) –

+0

오른쪽 Dimitar! Ken이 그 문제를 해결하는 방법을 알게하는 것은 간단한 예일뿐입니다! 저와 그에게 코드를 개선 할 수있는 방법을 알려 주셔서 감사합니다. 그런데 페이드를 알았지 만 setStyle ('opacity', 0)을 사용하여 불투명도를 "재설정"하는 방법 일뿐입니다. 사용자가 효과를 보도록하려면 Fx.Morph를 연결하여 다른 방법을 사용할 수 있습니다. 캐싱에 대해서도 동의합니다. 코드를 수정 하겠지만 5 분이 걸릴 것입니다.) – stecb

+0

이 사실을 알고 있지만 문제를 질문 한 사람 또는 솔루션을 볼 사람이 아닐 수도 있습니다. :) –

관련 문제