Перехват перехода по якорю
Подскажите, пожалуйста, можно ли как-то перехватить переход по якорю? К примеру, если у меня есть ссылка:
index.php#part1, то по нажатию на ней мы сразу опустимся к id='part1'. Можно ли как-то перехватить и отменить переход по якорю или же сделать какие-то действия, а уже потом переходить к якорю на странице..? |
<a href="#part1" onclick="myFunc();">Click</a> Так будет выполнена функция myFunc и потом будет переход по якорю. <a href="#part1" onclick="myFunc(); return false;">Click</a> Так будет выполнена функция myFunc, а перехода по якорю не будет. |
Внутри страницы у меня и так все прекрасно работало... Я имел в виду перехват перехода по якорю на вновь загруженной странице. К примеру, если я перейду по ссылке:
index.php#part1 из документа help.php к примеру... т.е. я загрузил документ и браузер меня поставил на нужное место сразу же.. а я хочу сделать переход плавным.. как мне отменить стандартный браузеровский эффект перебрасывания? |
я думаю вам придётся копать от события scroll.
|
(function ($) { $.fn.preventJump = function (time) { return this.click(function (event) { $("body").animate({ scrollTop : $("#" + this.href.split("#")[1]).offset().top }, time || 500); event.preventDefault(); }); }; })(jQuery); $("a.test").preventJump(300); <a href='#test' class='test'> Тест </a> ... <div id='test'> Сюда </div> |
Matre,
Это по моему не то, что просили:) и это "#" + this.href.split("#")[1] , по моему можно переписать так: location.hash |
Matre,
Все это я уже реализовал.. меня интересует именно перехват при переходе на новую страницу. Возможно ли вообще перехватить это событие?! Skipp, Попробую поискать на англ. форумах относительнос scroll.. но сомневаюсь, что получится найти =) Хотя, может возможностями чистого js можно как-то отменить переход по якорю |
Я делал не скролл к якорю, а скролл к элементу с id
пример http://yphp.jcase.ru/#scrollto=newsz |
А ларчик то просто открывается.
if (window.location.hash) {alert("Событие")} Ссылка без я коря Ссылка с якорем |
Serg_pnz,
У вас было что-то похожее на то, что мне нужно... Подмена hash? или как это вообще сделано? там мутулз и непонятно в каком файле искать ответ... Magneto, Ничего не понял... Вывести алерт по признаку хэша - не сложно. Как отменить действие браузера - перекидывание в эту точку - вот, что мне интересно.... |
Часовой пояс GMT +3, время: 08:26. |