А, ок, я вижу сейчас. Проблема здесь в том, что с конкретным компонентом, который вы используете, вы не можете настроить его только с помощью CSS. Причина в том, что Javascript полностью перезаписывает ваш CSS для этой части меню каждый раз, когда пользователь наводит на него курсор мыши. Вам нужно будет внести некоторую корректировку в Javascript, чтобы решить эту проблему.
Есть несколько способов обойти это, я только собираюсь попасть в один из них.
Один из способов решения этой проблемы - настроить, как меню переписывает CSS на лету для подменю. В этом случае вы можете указать Javascript для отрицательного значения для атрибута элемента «left:» CSS, чтобы позиция подменю открывалась, когда вы хотите. Примечание. В этом решении это может не работать в старых браузерах Internet Explorer. Я не уверен, что это вызывает беспокойство. Однако в современных браузерах это будет очень хорошо (по крайней мере, те, о которых я уже говорил).
Откройте свою копию файла ddsmoothmenu.js, это маленький искатель, который вызывает все проблемы здесь.
Изменение должно быть сделано в функции
$curobj.hover(function(e){..})
. Оставайтесь со мной, я объясню ...
Эта функция вычисляет начальную левую позицию вашего подменю, когда пользователь наводит указатель мыши на выбор главного меню. А именно, эта линия здесь является виновником:
var menuleft=header.istopheader && setting.orientation!='v'? 0 : header._dimensions.w
Как вы можете видеть, она возвращается «0» для вас, что означает, что якорь в левой части подменю, заставляя его вылиться в как сейчас.
Однако, не бойтесь!
Поскольку вам нужно подменю для закрепления с правой стороны и вывести его влево вместо этого, нам просто нужно изменить это из предположения '0' в формулу с небольшим интеллектом за ней.
Что нам нужно, это для Javascript, чтобы найти правильную позицию для привязки подменю справа. Мы делаем это, помогая маршрутизатору понять, что такое «правая сторона» элемента «header».
Чтобы найти это, мы просто берем ширину заголовка, удаляем из этого левого смещения тега a-href, который фактически содержит текст заголовка (это в случае любых полей, которые существуют, - которые у этого есть некоторые установлен в CSS), а затем удалить фактическую ширину самого подменю UL-тега. Теперь, в качестве побочного элемента, мне жаль, что мне не нужно было использовать что-то настолько неточное, как предположение, что заголовок является первым ребенком, но ... а ... иногда вы работаете с тем, что получили.
Так закомментируйте строку, я уже упоминал выше, и поставить эту строку в вместо:
var menuleft=((header._dimensions.w-header.childNodes[0].offsetLeft)-header._dimensions.subulw);
И от того, что я вижу, она должна быть открытой в направлении влево, как вы нуждаясь это делать в первый место.
Надеюсь, этот ответ поможет больше, чем мой предыдущий.
Добро пожаловать дехкан. Используйте инструменты, предоставляемые интерфейсом редактирования, чтобы вставлять веб-ссылки и изображения. Многое исправить это позже. Благодарю. –