• Страница 1 из 1
  • 1
Скроллинг страницы
Андрей
Дата: Воскресенье, 04.10.2009, 03:02 | Сообщение # 1
шептун
Группа: Проверенные
Пользователь №: 189
Сообщений: 65
Получено оценок: 11
Тема такая. Есть скрипт, который плавно прокручивает страницу, по клику на ссылку с якорем. Работает во всех смотрелках, кроме 10 оперы.
Вернее в ней работает, но не так как положено, прокрутка начинается с самого верха и в низ, а по идее должнa от того места где ссыль расположена.

Есле можно это исправить, был бы очень вам признателен.
Сам скрипт:

Code
<script>$(document).ready(function(){
     $('a[href*=#]').click(function() {
       if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
       && location.hostname == this.hostname) {
         var $target = $(this.hash);
         $target = $target.length && $target
         || $('[name=' + this.hash.slice(1) +']');
         if ($target.length) {
           var targetOffset = $target.offset().top;
           $('html,body')
           .animate({scrollTop: targetOffset}, 1000);
          return false;
         }
       }
     });
});</script>

+ jquery-1.3.2.min


Сообщение отредактировал Андрей - Воскресенье, 04.10.2009, 03:04
  
Vanofuture
Дата: Понедельник, 05.10.2009, 06:24 | Сообщение # 2
молчун
Группа: Пользователи
Пользователь №: 35
Сообщений: 27
Получено оценок: 2
Для прокрутки есть plugin jQuery.ScrollTo.
  
Андрей
Дата: Понедельник, 05.10.2009, 21:31 | Сообщение # 3
шептун
Группа: Проверенные
Пользователь №: 189
Сообщений: 65
Получено оценок: 11
Vanofuture, Я знаю о нём, но вопрос был не об этом.
  
Aleko
Дата: Среда, 14.10.2009, 20:27 | Сообщение # 4
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Андрей, прокрутка начинается сверху в связи с тем что скрипт не может поределить переменную targetOffset. Так как в разработчиках квери я не сомневаюсь, то думаю что проблему можно решить штатными методами. Попробуйте поэксперементировать с доктайпом страницы.

Если не помогло, просто замените квери функцию на её чистоскриптовый аналог:

Code
<script>
$(document).ready(function(){
      $('a[href*=#]').click(function() {
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
        && location.hostname == this.hostname) {
          var $target = $(this.hash);
          $target = $target.length && $target
          || $('[name=' + this.hash.slice(1) +']');
          if ($target.length) {
            var targetOffset = getOfTop($target);
            $('html,body')
            .animate({scrollTop: targetOffset}, 1000);
           return false;
          }
        }
      });
});
function getOfTop(a){
     a=a[0]?a[0]:a;
     var b=a.offsetTop;
     while(a.offsetParent!=null){
      a=a.offsetParent;
      b+=a.offsetTop;
      if(a.tagName=="BODY"){break}
      }
     return b
     }
</script>


Бесплатные обои.
  
  • Страница 1 из 1
  • 1
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.