Howto: проверьте, если на странице, если не перенаправить, а затем прокрутите - PullRequest
0 голосов
/ 03 октября 2011

Я пытаюсь заставить работать еще одну вещь:

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

Любая помощь?

Я использую scrollTo успешно, как это:

$(".scroll_to_top").click(function() {$.scrollTo($("body").position().top, 300)});

Часть блога, однако, еще не реагирует:

if(window.location.hash === 'blog') {
    $.scrollTo($("#blog").position().top, 300);
}

Что я делаю не так?

1 Ответ

0 голосов
/ 03 октября 2011

Вы можете использовать базовый хеш (#) в конце URL-адреса, чтобы автоматически прокручивать элемент с id, указанным в хэше (то есть http://example.com#blog).Это было бы самым простым решением, без необходимости использования Javascript.

Если, однако, элемент, к которому вы хотите прокрутить, не имеет id, который вы можете использовать (и вы не можете изменитьHTML, чтобы он это сделал), или вы хотите анимировать прокрутку, а не просто перепрыгивать соответствующий элемент, вы все равно можете использовать хеш в URL и сделать что-то вроде следующего:

//URL is http://example.com#blog

if(window.location.hash === 'blog'){
    //scroll
}

НаконецЕсли вы действительно ненавидите идею добавления хеша в URL по какой-либо причине, вы можете перехватить щелчок на <a>, создать cookie, перенаправить на нужную страницу, а затем заставить эту страницу проверить наличиепеченье.

...