2011-01-08 2 views
0

左側にメニューがあります。li >の項目があり、右側に4つのdivと1つの項目があり、マウスで項目を入力するとdivの1つが表示されます。 showDiv(ID)がDIVを示し、他のDIVを隠し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> 

Javascriptコード:

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); 
} 

コードaddEventなど作品、私はここでそれを貼り付けていないでしょう。実行される関数はshowDiv( "div id")です。 。

問題が見つかりません。それを動作させる方法や少なくともdivを消すための簡単な方法を教えてもらえますか?

(MooToolsは私はJoomlaのを使用しています、作品)

答えて

0

あなたのコード内のエラーがたくさんあります。 問題を理解して簡単に解決策を見つけるのに役立つ少しの例を作りました。 お手伝い願います!

http://goo.gl/TzlSt

あなたが疑問を持っている場合は、私にお気軽にお尋ね下さい。)

+0

'$$( 'メニュー。 ')(0).setStyle(' display' をフェード、 'どれも'。 ); ' - fadeは非同期であり、連鎖することはできません。表示のために非表示にし、フェードを0にトゥイーンしますが、ユーザーは見ることができません。 fade( "0"); ' - あなたは' 'el ''を使う必要がありますが、' 'el.set(" tween "、{onComplete:function(){this.element.setStyle(" display "、" none ");})フェードインのような他のトゥイーンを行う前に、.get( "tween")。removeEvents(); 'を実行すると、セレクタをキャッシュする必要があります。これは、大きなデータセットと古いブラウザでは非常に遅く/効果がありません。 p.s.これは1.2のためではないのでjoomla 1.5(custom'dを除く) –

+0

右ディミタール!ケンにその問題を解決する方法を知らせるだけの簡単な例でした!コードを改善する方法を私に教えてくれてありがとう。ところで、私はフェードを知っていましたが、それはsetStyle( 'opacity'、0)を実行することによって同じように不透明度を "リセット"する方法に過ぎませんでした。ユーザーにエフェクトが表示されるようにするには、Fx.Morphを連鎖させて別の方法を実行します。私はキャッシングについても同意します。コードを修正する5分があるときは – stecb

+0

あなたはこれを知っていますが、質問をした人または解決策を見ている人は分かりません。 :) –

関連する問題