Не могу понять где косяк в передаче или управлении.
var controllSize;
var controllSizeThree;
var controllSizeTwo;
var controllSizeOne;
$('#headerwrap').ready(function() {
var ua = navigator.userAgent;
if (ua.search(/Firefox/) > 0){ controllSizeOne = 1287 ; controllSizeTwo = 883 ; controllSizeThree = 733;}
else{ controllSizeOne = 1300 ; controllSizeTwo = 900 ; controllSizeThree = 750; }
});
var MAX = 'max';
var MIN;
var Content = $('#content');
var sideBar = $('#sidebar');
var scrolledH;
var rightSidebarH = $('#sidebar').height();
function scrollScreen () {
scrolledH = $(document).scrollTop();
if ( scrolledH > rightSideBar ) {
sideBar.hide();
Content.removeClass(MIN);
Content.addClass(MAX);
}else {
sidebar.show();
Content.removeClass(MAX);
Content.addClass(MIN);
}
};
function resizeScreen () {
var sizesWindow = $('#headerwrap').width();
switch( true ){
case sizesWindow >= controllSizeOne:
MIN = 'minOne';
scrollScreen();
break;
case sizesWindow < controllSizeOne && sizesWindow >= controllSizeTwo:
MIN = 'minTwo';
scrollScreen();
break;
case sizesWindow < controllSizeTwo && sizesWindow >= controllSizeThree:
MIN = 'minThree';
scrollScreen();
break;
case sizesWindow < controllSizeThree:
MIN = MAX;
scrollScreen();
break;
};
addEventListener('scroll', scrollScreen, false);
addEventListener('resize', resizeScreen, false);
$('body').ready(function() {
var sizesWindow = $('#headerwrap').width();
switch( true ){
case sizesWindow >= controllSizeOne:
MIN = minOne;
scrollScreen();
break;
case sizesWindow < controllSizeOne && sizesWindow >= controllSizeTwo:
MIN = minTwo;
scrollScreen();
break;
case sizesWindow < controllSizeTwo && sizesWindow >= controllSizeThree:
MIN = minThree;
scrollScreen();
break;
case sizesWindow < controllSizeThree:
MIN = MAX;
scrollScreen();
break;
}
});
|
Смысл такой:
Функция resizeScreen в зависимости от размеров окна браузера выставляет необходимый класс в переменную MIN, которая затем в вызванной функции scrollScreen используется при прокрутке- расширение либо сжатие. |
Цитата:
|
Точнее не смогу. Я не могу понять, почему скрипт не проявляет вообще никаких признаков жизни
|
Передача: значение MIN при case изменится и уйдет ли изменившиеся в scrollScreen?
|
Не судите строго- пред вами дно последнее) Только начал
|
F12 либо Ctrl+Shift+I - консоль браузера. незаменимая вещь. Выводит ошибки скриптов.
Так и быть, подскажу: не закрыт блок switch(){} в функции resizeScreen(){} |
Спасибо за подсказку- ошибок было очень много) Но не помогло...
|
var controllSize;
var controllSizeThree;
var controllSizeTwo;
var controllSizeOne;
$('#headerwrap').ready(function() {
var ua = navigator.userAgent;
if (ua.search(/Firefox/) > 0){ controllSizeOne = 1287 ; controllSizeTwo = 883 ; controllSizeThree = 733;}
else{ controllSizeOne = 1300 ; controllSizeTwo = 900 ; controllSizeThree = 750; }
});
var MAX = 'max';
var MIN;
var Content = $('#content');
var sideBar = $('#sidebar');
var scrolledH;
var rightSidebarH = $('#sidebar').height();
function scrollScreen () {
scrolledH = $(document).scrollTop();
if ( scrolledH > rightSidebarH ) {
sideBar.hide();
Content.removeClass(MIN);
Content.addClass(MAX);
}else {
sideBar.show();
Content.removeClass(MAX);
Content.addClass(MIN);
}
};
function resizeScreen () {
var sizesWindow = $('#headerwrap').width();
switch( true ){
case sizesWindow >= controllSizeOne:
MIN = 'minOne';
scrollScreen();
break;
case sizesWindow < controllSizeOne && sizesWindow >= controllSizeTwo:
MIN = 'minTwo';
scrollScreen();
break;
case sizesWindow < controllSizeTwo && sizesWindow >= controllSizeThree:
MIN = 'minThree';
scrollScreen();
break;
case sizesWindow < controllSizeThree:
MIN = MAX;
scrollScreen();
break;
}};
addEventListener('scroll', scrollScreen, false);
addEventListener('resize', resizeScreen, false);
$('body').ready(function() {
var sizesWindow = $('#headerwrap').width();
Content.removeClass('minOne');
Content.removeClass('minTwo');
Content.removeClass('minThree')
switch( true ){
case sizesWindow >= controllSizeOne:
MIN = 'minOne';
scrollScreen();
break;
case sizesWindow < controllSizeOne && sizesWindow >= controllSizeTwo:
MIN = 'minTwo';
scrollScreen();
break;
case sizesWindow < controllSizeTwo && sizesWindow >= controllSizeThree:
MIN = 'minThree';
scrollScreen();
break;
case sizesWindow < controllSizeThree:
MIN = MAX;
scrollScreen();
break;
}
});
|
$('body').ready(function() {
Даже не выполняется, в чем может быть проблема? |
класс как висел, так и висит на content
|
Цитата:
|
Я добился запуска именно этой функции, но при сжатии и расширении ничего не просиходит...
|
Главный косяк в том, что функция scrollScreen не активируется с прокруткой.
|
Вот такой вопрос: при первом сжатии все отлично проходит, при расширении ничего не работает и при прокрутке тоже
|
Цитата:
|
Жду
|
А вопрос был таков: что за бред?Почему не работает при обратном расширении?!
|
Блин, из-за магнитных бурь не могу наладить связь.. Придется по старинке - давайте ссылку на вашу демку.
|
Вот
|
Вложений: 1
Не, вот это
|
Не пойдет. Лучше сюда.
|
Ок, секунду
|
Там все работает...
|
А можете написать скрипт, состоящий из двух функций, одна работет при прокрутке, другая при расширение или сжатие, но при этом данные какой-нибудь переменной а передаются при выполнение условия одной функции в другой?
|
Что значит "данные передаются" ))
Не могут они передаваться, они могут шариться, т.е. быть доступными для обеих функций. Для этого достаточно что-бы переменная была объявлена в области видимости обеих функций. С этим проблемы? Тогда учить основы JS. |
Спасибо большое. Я сам разобрался
|
Проблема была в понимание работы jquery:)
|
| Часовой пояс GMT +3, время: 03:42. |