Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   FancyBox переопределяет вертикальный скролл ? (https://javascript.ru/forum/dom-window/40775-fancybox-pereopredelyaet-vertikalnyjj-skroll.html)

ilyas-> 19.08.2013 19:01

FancyBox переопределяет вертикальный скролл ?
 
Есть такая проблема в последней версии всем известного плагина FancyBox когда модальное-iFrame окно всплывает то оно затрагивает вертикальный скролл страницы, на странице много контента и соответственно вертикальный скролл длинный, при всплытии плагин берет и убирает существующий скролл и заместо него просто резервирует скролл без ползунка, у меня на сайте некоторые блоки с position:fixed дергаются изза этого переопределения скролла.
Вот привожу ссылку на страницу где можете сами лицезреть мною описанное(нажмите на iFrame). Перепробовал все что знаю в итоге не получается сделать так чтобы скролл страницы вообще не затрагивался и не переопределялся

Есть старая версия плагина FancyBox в ней как раз скролл не затрагивается скролл вот ссылка, внизу ссылки на iFrame. Как сделать также на новой версии плагина FancyBox чтобы не затрагивался вообще вертикальный скролл как на старой ?

danik.js 19.08.2013 19:08

По ссылке (в примерах) не вижу никаких скачков. Скроллбар "блокируется", да, но скачков не наблюдаю. Я кстати раньше сам встречал подобные косяки, отписывался на гитхабе. Вроде в последней версии косяк исправили, но не факт что в некоторых случаях он проявляется. Давай ссылку на демку с проблемой.

ilyas-> 19.08.2013 22:06

переопределение заключается в удалении ползунка и просто резервировании места, как сделать чтобы не трогал скролл вообще и скролл с ползунком оставался ?

danik.js 19.08.2013 22:38

Там есть опция, lock вроде. Смотри документацию короче.

рони 19.08.2013 22:50

ilyas->,
$(".fancybox").fancybox({
    helpers:  {
             overlay : {
            showEarly : false
        }
    }
});

ilyas-> 20.08.2013 07:18

Цитата:

Сообщение от рони (Сообщение 268257)
ilyas->,
$(".fancybox").fancybox({
    helpers:  {
             overlay : {
            showEarly : false
        }
    }
});

В какое место добавить ваш код в мой ?
$(document).ready(function(){

function fancybox_show()
{

$(function () {
    $.fancybox.open([
        {
            type: 'iframe',
            href : '/vk.html'              
           // title : '
		  
        }
    ], {
        padding : 0,
		autoSize: false,
        autoDimensions: false,
        width: 416,
        height: 416,
        fitToView: false,
        margin: 0
    });
});
 helpers:  {
             overlay : {
            showEarly : false
        }
    }
}
var date = new Date();
var mSec = 20*1000;

function show_fancybox(){

  if($.cookie('fancybox_show')){}else{
    // запускаем fancybox
fancybox_show();
       
   date.setTime(date.getTime()+mSec);
   
   $.cookie('fancybox_show', date.getTime(),{ path: "/", expires: date});
  }
}

$(function(){
   show_fancybox();
   setInterval(show_fancybox, 5000);
})

});

рони 20.08.2013 11:17

ilyas->,http://jsfiddle.net/XaWZE/
{
		padding : 0,
		autoSize: false,
        autoDimensions: false,
        width: 416,
        height: 416,
        fitToView: false,
        margin: 0 ,
        helpers : {
        overlay : {
            locked : false
        }
    }


	}

ilyas-> 20.08.2013 16:03

Цитата:

Сообщение от рони (Сообщение 268322)
ilyas->,http://jsfiddle.net/XaWZE/
{
		padding : 0,
		autoSize: false,
        autoDimensions: false,
        width: 416,
        height: 416,
        fitToView: false,
        margin: 0 ,
        helpers : {
        overlay : {
            locked : false
        }
    }


	}

Спасиба помогло

gradov81 07.11.2014 18:01

Цитата:

Сообщение от рони (Сообщение 268257)
ilyas->,
$(".fancybox").fancybox({
    helpers:  {
             overlay : {
            showEarly : false
        }
    }
});

У меня этот вариант решает проблему с вызовом первого изображения. Если нажать "Next" или "Prev" страница скролится вверх.
Как решить эту проблему, не знаете?

рони 07.11.2014 18:19

gradov81,
наличие кода повышает вероятность, что вам ответят


Часовой пояс GMT +3, время: 07:04.