#jquery #contextmenu
#jquery #контекстное меню
Вопрос:
Хорошо, я думаю, что строка темы объясняет большую часть этого, но все же я расскажу немного подробнее. Хорошо, вот сценарий,
У меня есть дерево элементов (имена элементов получены из базы данных, поэтому могут быть от none до 1000), каждый созданный элемент поставляется с функциональностью контекстного меню (т. Е. Вы можете щелкнуть по ним правой кнопкой мыши, чтобы просмотреть контекстное меню с 4-5 действиями). Теперь, кажется, все работает нормально, если я прокручиваю страницу вверх и вниз, но на некоторых страницах нет полос прокрутки (в соответствии с требованиями проекта), поэтому, если я нажму на самый нижний элемент, чтобы просмотреть список действий в контекстном меню, все, что я вижу, это половина контекстного меню и оставшаяся половина выходит за пределы окна браузера (пожалуйста, смотрите изображение ниже).,
Мой вопрос в том, есть ли способ переместить положение контекстного меню так, чтобы оно всегда оставалось в пределах окна браузера. С нетерпением жду ваших ответов и помощи,
С уважением,
rac3B3nn0n
Комментарии:
1. вы сами создали дерево и контекстное меню или можете дать несколько ссылок на источники?
2. Я не уверен, используете ли вы пользовательский интерфейс jquery, но у него есть утилита позиционирования со смещением столкновения, которая сохранит элемент внутри области просмотра: jqueryui.com/demos/position — это может сработать / не сработать для вас, но я подумал, что стоит упомянуть об этом.
3. Спасибо Мануэлю и Сваткинсу … 🙂
Ответ №1:
У меня была такая же проблема для очень большого контекстного меню (> 50 элементов). Я решил это следующим образом:
<style type="text/css">
.limit-context-size { max-height: 300px; overflow-y: scroll; }
</style>
...
$.contextMenu({
...
className: "limit-context-size",
...
});
Это приводит к прокрутке меню по вертикали. Размер 300 пикселей был выбран на основе размера шрифта контекстного меню.
Ответ №2:
Спасибо всем, хорошо, я понял это. На самом деле это была моя собственная ошибка, чтобы исправить ошибку позиционирования для IE6, я немного изменил код внутри jquery.contextMenu.js , переосмыслил то, что по-другому просто сработало для меня.
Спасибо вам всем за вашу помощь и усилия
С уважением, rac3B3nn0n
Комментарии:
1. можете ли вы поделиться кодом, который вы изменили, чтобы исправить положение? Спасибо