1

Magento のカスタム メニュー拡張機能を使用しています。問題が 1 つあります。メニューに表示されるポップアップ ドロップダウン ボックスがあります。firebug を使用してコーディングをトレースすると、次のことがわかります。

<div id="popup6" class="wp-custom-menu-popup" onmouseover="wpPopupOver(this, event, 'popup6', 'menu6')" onmouseout="wpHideMenuPopup(this, event, 'popup6', 'menu6')" style="display: none; top: 20px; left: 20px; z-index: 10000;">

拡張機能のファイルのどこにもこのコードが見つからないため、これを追跡しました。

<script type="text/javascript">
//<![CDATA[
var CUSTOMMENU_POPUP_WIDTH = <?php echo Mage::getStoreConfig('custom_menu/popup/width') + 0; ?>;
var CUSTOMMENU_POPUP_TOP_OFFSET = <?php echo Mage::getStoreConfig('custom_menu/popup/top_offset') + 0; ?>;
var CUSTOMMENU_POPUP_DELAY_BEFORE_DISPLAYING = <?php echo Mage::getStoreConfig('custom_menu/popup/delay_displaying') + 0; ?>;
var CUSTOMMENU_POPUP_DELAY_BEFORE_HIDING = <?php echo Mage::getStoreConfig('custom_menu/popup/delay_hiding') + 0; ?>;
var CUSTOMMENU_RTL_MODE = <?php echo $_rtl; ?>;
var wpCustommenuTimerShow = {};
var wpCustommenuTimerHide = {};
//]]>

top:20px を変更する必要があります。どこを探せばよいですか? jsファイルにもcssファイルにもありません...どこにも見つかりません。何か案は?私は初心者です!私の理解では、それは JS ファイルでなければなりませんが、読み方がわかりません。JSはここにあります:

function wpShowMenuPopup(objMenu, popupId)
{
if (typeof wpCustommenuTimerHide[popupId] != 'undefined') clearTimeout(wpCustommenuTimerHide[popupId]);
objMenu = $(objMenu.id); var popup = $(popupId); if (!popup) return;
wpCustommenuTimerShow[popupId] = setTimeout(function() {
    popup.style.display = 'block';
    objMenu.addClassName('active');
    var popupWidth = CUSTOMMENU_POPUP_WIDTH;
    if (!popupWidth) popupWidth = popup.getWidth();
    var pos = wpPopupPos(objMenu, popupWidth);
    popup.style.top = pos.top + 'px';
    popup.style.left = pos.left + 'px';
    wpSetPopupZIndex(popup);
    if (CUSTOMMENU_POPUP_WIDTH)
        popup.style.width = CUSTOMMENU_POPUP_WIDTH + 'px';
    // --- Static Block width ---
    var block2 = $(popupId).select('div.block2');
    if (typeof block2[0] != 'undefined') {
        var wStart = block2[0].id.indexOf('_w');
        if (wStart > -1) {
            var w = block2[0].id.substr(wStart+2);
        } else {
            var w = 0;
            $(popupId).select('div.block1 div.column').each(function(item) {
                w += $(item).getWidth();
            });
        }
        //console.log(w);
        if (w) block2[0].style.width = w + 'px';
    }
}, CUSTOMMENU_POPUP_DELAY_BEFORE_DISPLAYING);
}

function wpHideMenuPopup(element, event, popupId, menuId)
{
if (typeof wpCustommenuTimerShow[popupId] != 'undefined') clearTimeout(wpCustommenuTimerShow[popupId]);
element = $(element.id); var popup = $(popupId); if (!popup) return;
var current_mouse_target = null;
if (event.toElement) {
    current_mouse_target = event.toElement;
} else if (event.relatedTarget) {
    current_mouse_target = event.relatedTarget;
}
wpCustommenuTimerHide[popupId] = setTimeout(function() {
    if (!wpIsChildOf(element, current_mouse_target) && element != current_mouse_target) {
        if (!wpIsChildOf(popup, current_mouse_target) && popup != current_mouse_target) {
            popup.style.display = 'none';
            $(menuId).removeClassName('active');
        }
    }
}, CUSTOMMENU_POPUP_DELAY_BEFORE_HIDING);
}

function wpPopupOver(element, event, popupId, menuId)
{
if (typeof wpCustommenuTimerHide[popupId] != 'undefined') clearTimeout(wpCustommenuTimerHide[popupId]);
}

function wpPopupPos(objMenu, w)
{
var pos = objMenu.cumulativeOffset();
var wraper = $('custommenu');
var posWraper = wraper.cumulativeOffset();
var xTop = pos.top - posWraper.top
if (CUSTOMMENU_POPUP_TOP_OFFSET) {
    xTop += CUSTOMMENU_POPUP_TOP_OFFSET;
} else {
    xTop += objMenu.getHeight();
}
var res = {'top': xTop};
if (CUSTOMMENU_RTL_MODE) {
    var xLeft = pos.left - posWraper.left - w + objMenu.getWidth();
    if (xLeft < 0) xLeft = 0;
    res.left = xLeft;
} else {
    var wWraper = wraper.getWidth();
    var xLeft = pos.left - posWraper.left;
    if ((xLeft + w) > wWraper) xLeft = wWraper - w;
    if (xLeft < 0) xLeft = 0;
    res.left = xLeft;
}
return res;
}

function wpIsChildOf(parent, child)
{
if (child != null) {
    while (child.parentNode) {
        if ((child = child.parentNode) == parent) {
            return true;
        }
    }
}
return false;
}

function wpSetPopupZIndex(popup)
{
$$('.wp-custom-menu-popup').each(function(item){
   item.style.zIndex = '9999';
});
popup.style.zIndex = '10000';
}

enter code here
4

1 に答える 1

0

カスタムメニュー設定にはオプションがあります - 上部オフセット。このオプションは上部を定義する場合があります: 20px; 属性。

于 2013-02-23T14:36:49.647 に答える