Друзья, прошу сразу обратить внимание на сайт: Сайт
Я делаю мобильную версию. В хедере есть кнопка открытия меню. Как только я на нее нажимаю, контент выдвигается и становится видна левая панель. Для того что бы контент не скролился я отключаю скроллинг функцией Scroll
Вот она:
function Scroll(str)
{
var scrollPosition = [
self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
];
if(str=="off")
{
var html = jQuery("html");
html.data("scroll-position", scrollPosition);
html.data("previous-overflow", html.css("overflow"));
html.css("overflow", "hidden");
window.scrollTo(scrollPosition[0][1], scrollPosition[1][0]);
$(".contentlayer").bind("touchmove", function(e){e.preventDefault()});
}
else
{
var html = jQuery("html");
var scrollPosition = html.data("scroll-position");
html.css("overflow", html.data("previous-overflow"));
window.scrollTo(scrollPosition[0], scrollPosition[1]);
$(".contentlayer").unbind("touchmove");
}
}
Если контент на сайте НЕ БЫЛ прокручен, то есть мы находимся на позиции 0 0 то все работает нормально. Если же прокрутить контент немного вниз, а затем нажать на кнопку меню, то происходят скачки. Сначало моментальный подьем в точку 0 0 а затем выдвигание панели и кривая анимация. Как только мы жмем на меню еще раз, то блок с контентом задвигается и устанавливается позиция та которая была.
ВОПРОС: как убрать скачек? Я хочу что бы при прокрутке контента, и нажатия на кнопку меню блок с контентом не поднимался в 0 0, а просто остался так как есть, но скрол при этом был отключен.
Все css и функции можно просмотреть в принципе в исходном коде страницы.
Я для себя выбрал следующий вариант решения данной проблемы:
Для body
задаем:
body {
overflow-x:hidden;
overflow-y:auto;
}
Добавляем новый класс для body
, например, .fixed
:
body.fixed {
overflow:hidden;
}
При открытии/закрытии меню добавляем/удаляем у body
класс
.fixed
. Например, так:
$('.menu').on('click',function() {
$('body').toggleClass('fixed');
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть свой компонент Input, менять который нежелательнои мне нужно сделать маску
Скачал плагин с офф сайта, установил, и сразу же в консоли выдает ошибку: Uncaught TypeError: Cannot read property 'onchange' of null at windowonload (js_my_file:119)
Хочу сделать правильную валидацию полей, для ввода линков, профайлов, из соц сетей