FancyBox переопределяет вертикальный скролл ?
Есть такая проблема в последней версии всем известного плагина FancyBox когда модальное-iFrame окно всплывает то оно затрагивает вертикальный скролл страницы, на странице много контента и соответственно вертикальный скролл длинный, при всплытии плагин берет и убирает существующий скролл и заместо него просто резервирует скролл без ползунка, у меня на сайте некоторые блоки с position:fixed дергаются изза этого переопределения скролла.
Вот привожу ссылку на страницу где можете сами лицезреть мною описанное(нажмите на iFrame). Перепробовал все что знаю в итоге не получается сделать так чтобы скролл страницы вообще не затрагивался и не переопределялся Есть старая версия плагина FancyBox в ней как раз скролл не затрагивается скролл вот ссылка, внизу ссылки на iFrame. Как сделать также на новой версии плагина FancyBox чтобы не затрагивался вообще вертикальный скролл как на старой ? |
По ссылке (в примерах) не вижу никаких скачков. Скроллбар "блокируется", да, но скачков не наблюдаю. Я кстати раньше сам встречал подобные косяки, отписывался на гитхабе. Вроде в последней версии косяк исправили, но не факт что в некоторых случаях он проявляется. Давай ссылку на демку с проблемой.
|
переопределение заключается в удалении ползунка и просто резервировании места, как сделать чтобы не трогал скролл вообще и скролл с ползунком оставался ?
|
Там есть опция, lock вроде. Смотри документацию короче.
|
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);
})
});
|
ilyas->,http://jsfiddle.net/XaWZE/
{
padding : 0,
autoSize: false,
autoDimensions: false,
width: 416,
height: 416,
fitToView: false,
margin: 0 ,
helpers : {
overlay : {
locked : false
}
}
}
|
Цитата:
|
Цитата:
Как решить эту проблему, не знаете? |
gradov81,
наличие кода повышает вероятность, что вам ответят |
Цитата:
Это родной код рекомендуемый создателем fancybox. При его использовании, если в css есть html {height: 100%;}, происходит скрол в верхнюю часть страницы когда нажимаешь на фото: $(document).ready(function() { $(".fancybox").fancybox({ openEffect : 'none', closeEffect : 'none' }); }); Этим кодом устраняется эта проблема (взят с этой страницы форума): $('.fancybox').fancybox({ padding : 0, helpers: { overlay: { locked: false } } }); при вызове фото скрола нет, а вот при нажатии на прокрутку следующего или предыдущего фото срабатывает скрол в верхнюю часть. Если не ошибаюсь, за прокрутку фото отвечает функция: $.fancybox.next $.fancybox.prev При срабатывании этих функций происходит скрол вверх страницы. |
gradov81,
http://fancyapps.com/fancybox/ если там у вас непрыгает, значит в вашем коде не учитывается нажатие на ссылку и идёт по ней переход. либо вёрстка барахлит, либо return false нужен. пишите макет смотрите код ниже -- прыгает или нет???
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> - jsFiddle demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script type='text/javascript' src="http://fancyapps.com/fancybox/source/jquery.fancybox.js"></script>
<link rel="stylesheet" type="text/css" href="http://fancyapps.com/fancybox/source/jquery.fancybox.css">
<style type='text/css'>
div.hh{
height: 2000px;
}
html {height: 100%;}
</style>
<script type='text/javascript'>
$(function(){
$(document).ready(function() {
$(".fancybox").fancybox({
openEffect : 'none',
closeEffect : 'none'
});
});
});
</script>
</head>
<body>
<div class="hh"></div>
<a rel="gallery" class="fancybox" href="http://fancyapps.com/fancybox/demo/1_b.jpg"><img src="http://fancyapps.com/fancybox/demo/1_s.jpg" alt=""/></a>
<a rel="gallery" class="fancybox" href="http://fancyapps.com/fancybox/demo/2_b.jpg"><img src="http://fancyapps.com/fancybox/demo/2_s.jpg" alt=""/></a>
</body>
</html>
|
Цитата:
html, body { height:100%; } Без него всё работает корректно, но разваливается вёрстка. Я не силён Javascript, но думаю эту проблему можно решить с помощью него. Может кто поможет? |
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 20:53. |