Показать сообщение отдельно
  #1 (permalink)  
Старый 12.08.2011, 14:40
Новичок на форуме
Отправить личное сообщение для Drus Посмотреть профиль Найти все сообщения от Drus
 
Регистрация: 12.08.2011
Сообщений: 2

Скрипт работает через раз
Все банально: есть скрипт на сайте, который при заходе делает следующее проверят наличие хеша в ссылке, если таковой есть - выдает новую страницу, заменяя старую, если нет - оставляет текущую.
Вне зависимости от хеша происходит поиск пункта меню с урелом как у текущей страницы и блик(подсветка активного пункта меню) заезжает под его название.

Проблема - работает через раз, в частности после перехода с Гугла. Наиболее часто происходит в Осле. помогите пожалуйста, мозг уже сломал себе.

сайт __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"});
}


Прошу простить за возможные косяки, первый пост

Последний раз редактировалось Drus, 12.08.2011 в 14:42. Причина: не дописал =)
Ответить с цитированием