Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2015, 02:08
Интересующийся
Отправить личное сообщение для Dryn9 Посмотреть профиль Найти все сообщения от Dryn9
 
Регистрация: 21.01.2015
Сообщений: 12

Не работает скроллинг
Добрый вечер. У меня такая проблема: есть функция:
<script type="text/javascript">
function scrolling() {
	var elementClick = $(this).attr("href");       
    var destination = $(elementClick).offset().top - 100;       
    if ($.browser.safari)
    {           
        $('body').animate({ scrollTop: destination }, 1100); //1100 - скорость прокрутки       
    }
    else
    {           
        $('html').animate({ scrollTop: destination }, 1100);       
    }       
}
</script>

Хочу чтобы в меню при нажатии на кнопку вызвать эту функцию и скроллить, но оно не работает. Код меню.
<ul>
<li><a onclick="scrolling ()" href="#hdr">Главная</a></li>
<li><a onclick="scrolling ()" href="#content">Наши услуги</a></li>
<li><a onclick="scrolling ()" href="#princip">Наши принципы</a></li>
<li><a onclick="scrolling ()" href="#shema">Как мы работаем</a></li>
<li><a onclick="scrolling ()" href="#raboty">Наши работы</a></li>
</ul>

Что я сделал не так?
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2015, 02:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Dryn9,
не отменил действие по умолчанию на ссылке
назначил клик в теге
сделал бесполезный if
не воспользовался поиском по форуму
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2015, 02:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Dryn9,
прогкрутка к якорям
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2015, 02:31
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Лучше сделать по другому:

<ul>
    <li><a href="#hdr">Главная</a></li>
    <li><a href="#content">Наши услуги</a></li>
    <li><a href="#princip">Наши принципы</a></li>
    <li><a href="#shema">Как мы работаем</a></li>
    <li><a href="#raboty">Наши работы</a></li>
</ul>



$(document).on('click', 'a[href]', function() {
    if((!this.target || this.target == '_self') && this.getAttribute('href').charAt(0) == '#') {
        var elem = $(this.hash);
        if(elem) {
            ('body, html').animate({scrollTop: elem.offset().top - 100}, 1100);
        }
    }
});
Ответить с цитированием
  #5 (permalink)  
Старый 29.01.2015, 02:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Ruslan_xDD,
Сообщение от рони
не отменил действие по умолчанию на ссылке
Ответить с цитированием
  #6 (permalink)  
Старый 29.01.2015, 02:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Ruslan_xDD
if(elem)
???
хотябы elem.length
Ответить с цитированием
  #7 (permalink)  
Старый 29.01.2015, 03:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В догонку ))
Сообщение от Ruslan_xDD
this.getAttribute('href').charAt(0) == '#'
Ссылка может ссылаться на локальный якорь, но в атрибуте прописан полный адрес текущей страницы (сам сталкивался с таким, из-за злоупотребления <base href>)
И если уж и за бить на такое, то тут:
Сообщение от Ruslan_xDD
'a[href]'
можно сразу ограничить выборку по [href^=#]

Сообщение от Ruslan_xDD
this.target == '_self'
Это какой-то браузер чудит или расчет на прописанный в html атрибут? Но тогда как насчет '_top'?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 30.01.2015, 00:35
Интересующийся
Отправить личное сообщение для Dryn9 Посмотреть профиль Найти все сообщения от Dryn9
 
Регистрация: 21.01.2015
Сообщений: 12

Мне надо чтобы не для всех элементов, а именно для этих.
Ответить с цитированием
  #9 (permalink)  
Старый 30.01.2015, 00:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Dryn9,
выкиньте из вашего скрипта строки 5,6,7,8,9,10, и 12.
если не смогли осилить подсказки
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11