Остановка прокрутки за необычными

0

У меня есть этот сайт: http://thc-cup.ucoz.com/

И я использовал fancybox, чтобы добавить в него форму входа/контакта, не переходя на другую страницу для этого. НО... после того, как вы нажмете их и покажете, если вы прокрутите список, вы увидите, что страница позади тоже прокручивается, что раздражает.

Как заставить ее остановить прокрутку, пока fancybox активен?

РЕДАКТИРОВАТЬ

Код на сайте: * Для контактной формы:

<div id="-cu" style="display: none;">$MFORM_1$</div>

* Для ссылки, которая запускает fancybox:

 <li><a class="fancybox" href="#-cu">Contact Us</a></li>

Благодарю.

Теги:
scroll
fancybox

2 ответа

0

вам нужно установить опцию locked overlay на true как

$(".fancybox").fancybox({
    helpers : {
        overlay : {
            locked : true // false (page scrolls behind fancybox)
        }
    }
});

Проверьте этот JSFIDDLE

  • 0
    я добавил это, но это не работает ... jsfiddle работает, но не на моем сайте: thc-cup.ucoz.com
  • 0
    @SkanSo: у вас есть два элемента fancybox, но второй с helpers не включен в метод .ready() (как первый), поэтому не учитывается.
Показать ещё 1 комментарий
0

Аналогичный вопрос для этого прокрутки - только расстояние от модального на меньших экранах с медиа-запросами

Ответ, который я дал, был таким. http://jsfiddle.net/mgGS7/1/

Скрипка имеет вашу веб-страницу внутри одного div. Таким образом, заголовок, содержимое и нижний колонтитул находятся внутри div. Это упростит решение.

<div class = "popup">
    <div class = "over"></div>
    <div class = "window">
        <button class = "close">Close</button>
    </div>
</div>

<div class = "content">
    <p>Filler</p>
    <button class = "pop">Popup</button>
    <p>Filler</p>
    <p>Filler</p>
    <button class = "pop">Popup</button>
    <p>Filler</p>
</div>

var scroll;

$('.pop').click (function () {
    scroll = $(document).scrollTop ();
    $('.popup').show ();
    $('.content').offset ({top:-scroll}).addClass ('paused');
});

$('.close').click (function () {
    $('.popup').hide ();
    $('.content').removeClass ('paused').removeAttr ('style');
    $(document).scrollTop (scroll);
});

Ваша веб-страница будет внутри .content. По сути, когда вы нажимаете всплывающее окно, прокрутка веб-страницы сохраняется и фиксируется в этой позиции, чтобы она не могла двигаться. Как только всплывающее окно исчезает, оно больше не фиксируется и восстанавливается положение прокрутки.

Это один из способов сделать это. Другой способ - послушать события колесика мыши и сделать какую-то логику там, например, e.preventDefault() или что-то еще. Здесь ссылка на прослушивание событий колесика мыши. JQuery/JS: обнаружение попытки прокрутки пользователя без переполнения окна для прокрутки до

  • 0
    Ваш ответ очень подробный и выглядит хорошо ... но я новичок в написании сценариев, и я действительно не знаю, как применить это на моем сайте. Не могли бы вы помочь мне заставить ваше решение работать? Пожалуйста? Я обновлю свой вопрос с кодом на моем сайте. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню