Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   JavaScript - Chrome и Opera не верно видят разметку во время прокрутки после перезагр (https://javascript.ru/forum/css-html/53438-javascript-chrome-i-opera-ne-verno-vidyat-razmetku-vo-vremya-prokrutki-posle-perezagr.html)

mpport 04.02.2015 10:15

JavaScript - Chrome и Opera не верно видят разметку во время прокрутки после перезагр
 
Здравствуй спаситель о! вот сайт http://bolshoi-medved.ru Хедер-Фиксированное меню по мере передвижения scroll должно менять цвет по мере достижения элемента со значением id, что и происходит на локалке, IE и Firefox работает как надо. Но в Chrome и Opera слетает после перезагрузки страницы и цвета меняются не достигнув очередного события при прокрутке id=page. Не могу понять в чем тут дело, helppp!!!!!
такой скрипт
$(document).ready(function(){
				!function(){
			var map=[]
			 ,names=[]
			 ,win=$(window)
			 ,header=$('header')
			 ,currClass
			$('.content').each(function(n){
			 map[n]=this.offsetTop
			 names[n]=$(this).attr('id')
			})
			
                            win
			 .on('scroll',function(){
				var i=0
				while(map[i++]<=win.scrollTop());
				if(currClass!==names[i-2])
				currClass=names[i-2]
				header.removeAttr("class").addClass(names[i-2])
			 })


 			 
			}(); });


какие мысли: 1) возможно влияет движок WebKit?
2)Сбивается алгоритм сценария? но ведь хедер1 сменяет хедер2 и тд....хотя на мониторе пйдж1
3) косяк в переменных? как же тогда Firefox разобрался...

mpport 04.02.2015 13:03

но при этом при нажатии пунктов меню переход происходит куда надо
 
например: хром и опера при вызове скрипта думают что мы в разделе контакты, и поэтому цвет меню синий, как задано в стилях для страницы контактов ,а должен быть розовый

но при этом при нажатии пунктов меню переход происходит куда надо, вот так:

function goToByScroll(id){
$('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
}
$(document).ready(function(){
$().UItoTop({ easingType: 'easeOutQuart' });
});


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