Все банально: есть скрипт на сайте, который при заходе делает следующее проверят наличие хеша в ссылке, если таковой есть - выдает новую страницу, заменяя старую, если нет - оставляет текущую.
Вне зависимости от хеша происходит поиск пункта меню с урелом как у текущей страницы и блик(подсветка активного пункта меню) заезжает под его название.
Проблема - работает через раз, в частности после перехода с Гугла. Наиболее часто происходит в Осле. помогите пожалуйста, мозг уже сломал себе.
сайт __infleur.ru
сам скрипт:
$(document).ready(function(){
// Осел 6 идет - нах
if ($.browser.msie && $.browser.version.substr(0,1)<7) {
window.location = "http://infleur.ru/browserversion/ie6.html";
}
var base = "http://infleur.ru";
var url = window.location.href;
var hash = window.location.hash.substr(1);
var index_of_hash = url.indexOf(hash) || url.length;
var urel = url.substr(0, index_of_hash);
var content = $('#content');
var active = $('.active');
//если есть хеш - даем страницу с переадресацией
if(hash.length != 0){
$('.slider').remove();
if(hash.length == 1){
window.location = "http://infleur.ru"
} else {
$('#menu a[href*='+hash.replace(/\//g, '')+']').each(function (){
getNewPage($(this), content, active, 1);
setBlur();
});
}
}else {
$('#menu a').each(function (){
if (this.href == document.URL) {
getNewPage($(this), content, active, 1);
setBlur();
}
});
}
$('#menu a').click(function(event){
event.preventDefault();
document.title = $(this).attr('rel')+"Луи Де Флер - премиум-букеты, доставка цветов Екатеринбург, оформление праздников, организация мероприятий";
urel = $(this).attr('href');
parent.location.hash = urel;
getNewPage($(this), content, active);
setBlur();
});
});
function getNewPage(aClick, content, active, param){
var offset_click = aClick.offset().left;
var width_click = aClick.parent().width();
var width_cur = active.parent().width();
var offset_cur = active.parent().offset().left;
var shadowBox = $('#shadow_box');
if(param != 1){
offset_prev = active.offset().left;
active.animate({'marginLeft' : (offset_click - offset_cur + (width_click - width_cur)/2) -109}, 900, 'swing');
var htm = aClick.attr('href');
if(((offset_click - 500) - offset_prev) > 0){
shadowBox.css({"display":"block"});
$('.slider').animate({'marginLeft' : "-=2000px"}, 900, function() {
content.after(function(){
$(this).load(htm+' .slider', function(){
$('.slider').css('marginLeft', '2000px').animate({'marginLeft' : "-=2000px"}, 600, 'swing', function(){
shadowBox.css({"display":"none"});
});
});
})
});
} else {
shadowBox.css({"display":"block"});
$('.slider').animate({'marginLeft' : "+=2000px"}, 900, function() {
content.after(function(){
$(this).load(htm+' .slider', function(){
$('.slider').css('marginLeft', '-2000px').animate({'marginLeft' : "+=2000px"}, 600, 'swing', function(){
shadowBox.css({"display":"none"});
});
});
});
});
}
} else {
offset_prev = active.offset().left;
active.css({'marginLeft' : (offset_click - offset_cur + (width_click - width_cur)/2) -109});
var htm = aClick.attr('href');
content.after(function(){
$(this).load(htm+' .slider')
});
}
}
function setBlur(){
$('#button').hover(function(){
$(this).attr('src', '/fileadmin/templ/img/button_h.png');
}, function(){
$(this).attr('src', '/fileadmin/templ/img/button_n.png');
});
}
function setShadowBox(shadowBox){
shadowBox.css({"display":"block"});
}
function outShadowBox(shadowBox){
shadowBox.css({"display":"none"});
}
Прошу простить за возможные косяки, первый пост