прокрутить горизонтально до якоря и заблокировать ось Y - PullRequest
2 голосов
/ 25 июля 2011

У меня есть позиция: фиксированная навигация по стрелкам, которая позволяет вам прокручивать влево или вправо через несколько столбцов с помощью jquery и горизонтально расположенных якорей:

        $('html,body').animate({
        scrollLeft: $(target).offset().left
        }, 800 , function (){window.location.hash = target;});

до сих пор прекрасно работает.

столбцы довольно узкие, они могут стать довольно длинными, что заставляет пользователя прокручивать страницу вниз.Как только вы прокрутите вниз и захотите перейти к другому столбцу, js продолжит анимацию слайда, но затем перейдет к вершине следующего столбца.

Есть ли способ заблокировать ось yдвижение?Или сказать сценарию выполнить только горизонтальное движение?

Заранее спасибо!

1 Ответ

1 голос
/ 25 июля 2011

Проблема в том, что после завершения анимации вы устанавливаете хеш как цель. Это заставит браузер перейти к элементу с идентификатором хэша. Вы на самом деле не хотите этого поведения, потому что вы хотите только ось Y.

Возможно, добавьте строку в конец вашего элемента, чтобы вы могли по-прежнему ориентироваться на него, но это не то, что вы указали в качестве хеш-тега.

 scrollLeft: $(target + "_real").offset().left
        }, 800 , function (){window.location.hash = target;});
...