2010-01-26 1 views
0

Я использую Eric Martin's sweet 'simplemodal' jQuery plugin. Он отлично работает и рекомендовал бы его всем, кто ищет легкое решение для модального диалога на основе jQuery.jquery.simplemodal-1.3.3.js: абсолютное позиционирование (по сравнению с фиксированным)

Это говорит о том, что у меня есть особенно длинный контент, который «нужно» отображать как модальный. По умолчанию элемент контейнера использует «overflow: auto» для обработки содержимого, которое слишком велико для размещения в окне браузера. Это хорошо работает в большинстве случаев, но в этом случае я хотел бы, чтобы диалог оставался на всю высоту и прокручивался с остальной частью страницы (позиционировался «абсолютный» и «фиксированный»). Я могу получить эту работу довольно легко модифицировать любую позиции: «фиксированной» ссылки на источнике в положения: «абсолютной» но это отстой, как это означает, что ВСЕ мои модальности покажут этот путь ...

Любой есть ли какие-либо мысли о том, как сделать эту работу изящно?

ответ

0

Звучит так, как будто вы не склонны адаптировать источник к конкретным потребностям ... поэтому я бы рекомендовал переработать его, чтобы вы могли снабжать свойства позиционирования и переполнения через объект опций.

+0

Да, к сожалению, это заключение I мы пришли к ... изменению источника Эрика, чтобы можно было указать позиционирование с помощью дополнительной опции. Спасибо за ваш вклад/обратную связь! – droo

1

попробуйте добавить позицию: абсолютная к фактическому модального вызова для этого конкретного сНу области

как ниже

$ ("# somebutton") нажмите (функция() {

$('#my-modal-content').modal({ 
     position:absolute 
    }); 
}); 

. У меня была такая же проблема, как и у вас, но я хотел иметь другой размер для разных кнопок/функций, и именно так я решил. Удачи!

+0

@myself: если, конечно, это не уже поставляется в sdmiller предлагает выше :-) в этом случае нет необходимости переделки источник. – prodigitalson

+0

Добавление "position: 'absolute'" к модальному вызову, к сожалению, вообще ничего не делает ... – droo

+0

Это форма, за которой я следовал для переопределения CSS по умолчанию // Изменение минимальной высоты и ширины $ ("# sample"). modal ({ \t minHeight: 400, \t minWidth: 600 }); этот пример /Вручную установить положение с использованием процентов $ ("# sample"). Modal ({position: ["50%", "50%"]}); Я нашел их на своей странице. Вы можете попробовать положение: [абсолютное] – sdmiller

0

Просто запустите прокрутку в диалоге сам журнал.

+0

Это (как упоминалось) на самом деле является поведением по умолчанию ... – droo

0

Вам нужно будет значительно изменить код, особенно код, связанный с IE (главным образом IE6).

Простое переключение в абсолютное положение будет работать вначале для определенных браузеров, но некоторые браузеры или изменение размера страницы (в любом браузере) вернутся в фиксированное положение.

1

Это то, что я делаю:

jQuery('#MyModal').modal({ 
    //options 
}); 
jQuery('#MyModal').parents('.simplemodal-container').css('position', 'absolute'); 
+0

Спасибо за это! Вы также можете установить объявление как параметр только для этого модального параметра, установив onOpen: function (dialog) {dialog.container.css ('position', 'absolute');}. Поступая таким образом, вы наверняка не повлияете ни на что другое. – David