Вы можете использовать jQuery.fn.offset и сравнить, чтобы увидеть, больше ли jQuery(window).width()
сумма left
компонента этого смещения и ширины вашего меню, и если это не так и меню обрезается, затем обновите положение меню, чтобы оно совпало с другим краем кнопки (или триггера меню) и т. д. Вы должны привязать эту функцию к срабатыванию, когда окно получает resized или если есть горизонтальная прокрутка . Извините, если это слишком высокоуровневый и недостаточно пример кода, но этого должно быть достаточно, чтобы начать работу.
...
Я решил вашу проблему с примером на JSFiddle . Я думаю, это то, что вы ищете. Я заполнил много недостающего CSS из вашего исходного кода, с некоторыми не-IE селекторами CSS, чтобы сэкономить время. Я также переписал большую часть JS. Определенно есть место для изысканности, но это хорошо работает. Я также не привязывал его к настройке в реальном времени при изменении размера окна, но я думаю, что это скорее крайний случай по сравнению с привязками кликов.