0

ドロップシャドウを削除したいメニューボタンがあります。最初にメニューオブジェクトをインスタンス化する必要はありませ(それをアタッチするためにDOMでdivを指定する必要があるため)。JSでメニューをインスタンス化することはできますが、次の方法でドロップシャドウを削除しようとすると、this.menuButton.getMenu().cfg.setProperty('shadow', false);ドロップシャドウが表示されたままになります。JSデバッガーでcfgオブジェクトを確認し、シャドウがfalseに設定されていますが、シャドウは引き続き表示されます。

もう1つのオプションは、シャドウdivをdomから削除することですが、それは正しいことではないようです。

4

1 に答える 1

0

最終的に、メニューを保持するためにDOMにdivを作成しました。私のレイアウトはあまり堅牢ではないため、最初は警戒していました(グラフィックデザイナーにアウトソーシングし、彼の作業をコードと統合しようとしていました)。これが、私がDOMにdivを導入したくない理由です。

私にとっての鍵は、レイアウトに影響を与えない場所にdivを含めることでした。もともと私はこのようなものを持っていました:

<input> type="button" id="srchType" />
<input type="text" id="first-name" value="First Name" />
<input type="submit" id="profiles-search-submit" value="Search" />

2つの入力の間にdivを挿入しました。これは私のレイアウトを台無しにしました。重要なのは、divを前後に挿入することでした。これは私のレイアウトを台無しにすることはありません。YMMV、DOMが変更にどの程度敏感かによって異なります。彼らが何をすべきか疑問に思っているなら、これが誰かを助けることを願っています。

これを行った後(divを作成)、次のようにYUIMenuオブジェクトを作成できます。

var searchMenuItems = 
  [{ text: "First Name", value: 'firstName', onclick: {fn: onMenuItemClick}},
   { text: "Last Name", value: 'lastName', onclick: {fn: onMenuItemClick}}];

var srchTypeMenuConfig = { shadow: false,
                           effect: { 
                            effect: YAHOO.widget.ContainerEffect.FADE,
                            duration: .25 
                           }
                         };
this.srchTypeMenu = new YAHOO.widget.Menu(this.searchMenuEl, 
                                          srchTypeMenuConfig);
于 2011-01-17T07:43:19.127 に答える