Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не могу понять где косяк в передаче или управлении. (https://javascript.ru/forum/misc/35536-ne-mogu-ponyat-gde-kosyak-v-peredache-ili-upravlenii.html)

Mapcicc 13.02.2013 23:03

Не могу понять где косяк в передаче или управлении.
 
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;	
	}
});

Mapcicc 13.02.2013 23:07

Смысл такой:
Функция resizeScreen в зависимости от размеров окна браузера выставляет необходимый класс в переменную MIN, которая затем в вызванной функции scrollScreen используется при прокрутке- расширение либо сжатие.

danik.js 13.02.2013 23:12

Цитата:

Сообщение от Mapcicc
Не могу понять где косяк в передаче или управлении

Можете расшифровать вопрос? Какая передача, какое управление? Рефакторинг кода был бы очень ксати, потому что много буков...

Mapcicc 13.02.2013 23:19

Точнее не смогу. Я не могу понять, почему скрипт не проявляет вообще никаких признаков жизни

Mapcicc 13.02.2013 23:21

Передача: значение MIN при case изменится и уйдет ли изменившиеся в scrollScreen?

Mapcicc 13.02.2013 23:23

Не судите строго- пред вами дно последнее) Только начал

danik.js 13.02.2013 23:28

F12 либо Ctrl+Shift+I - консоль браузера. незаменимая вещь. Выводит ошибки скриптов.
Так и быть, подскажу: не закрыт блок switch(){} в функции resizeScreen(){}

Mapcicc 13.02.2013 23:48

Спасибо за подсказку- ошибок было очень много) Но не помогло...

Mapcicc 13.02.2013 23:50

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;	
	}
});

Mapcicc 13.02.2013 23:50

$('body').ready(function() {
Даже не выполняется, в чем может быть проблема?

Mapcicc 13.02.2013 23:51

класс как висел, так и висит на content

danik.js 14.02.2013 08:18

Цитата:

Сообщение от Mapcicc
$('body').ready(function() {

А это где вы такое нашли?

Mapcicc 15.02.2013 22:34

Я добился запуска именно этой функции, но при сжатии и расширении ничего не просиходит...

Mapcicc 15.02.2013 22:44

Главный косяк в том, что функция scrollScreen не активируется с прокруткой.

Mapcicc 15.02.2013 23:06

Вот такой вопрос: при первом сжатии все отлично проходит, при расширении ничего не работает и при прокрутке тоже

danik.js 15.02.2013 23:32

Цитата:

Сообщение от Mapcicc
Вот такой вопрос...

Это не вопрос, это утверждение. Однако секунду, устанавливаю телепатическую связь, щас помогу, ждите...

Mapcicc 16.02.2013 00:09

Жду

Mapcicc 16.02.2013 00:10

А вопрос был таков: что за бред?Почему не работает при обратном расширении?!

danik.js 16.02.2013 11:12

Блин, из-за магнитных бурь не могу наладить связь.. Придется по старинке - давайте ссылку на вашу демку.

Mapcicc 17.02.2013 16:35

Вот

Mapcicc 17.02.2013 16:38

Вложений: 1
Не, вот это

danik.js 17.02.2013 17:28

Не пойдет. Лучше сюда.

Mapcicc 17.02.2013 20:43

Ок, секунду

Mapcicc 17.02.2013 21:08

Там все работает...

Mapcicc 17.02.2013 21:45

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

danik.js 17.02.2013 22:21

Что значит "данные передаются" ))
Не могут они передаваться, они могут шариться, т.е. быть доступными для обеих функций. Для этого достаточно что-бы переменная была объявлена в области видимости обеих функций. С этим проблемы? Тогда учить основы JS.

Mapcicc 17.02.2013 22:32

Спасибо большое. Я сам разобрался

Mapcicc 17.02.2013 22:34

Проблема была в понимание работы jquery:)


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