Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Изменение url (https://javascript.ru/forum/dom-window/43984-izmenenie-url.html)

Valentinka_1 29.12.2013 23:01

Изменение url
 
Доброго времени суток. Как можно сделать такую вещь - есть ссылка, к примеру sitename/test/ как можно из test сделать якорь, при этом не меняя самого url. Вот более детальный пример как нужно (меню)

AlexVx 29.12.2013 23:37

Думаю можно использовать свойства тега body - scrollTop:
var body_obj = document.getElementsByTagName('body')[0];
body_obj.scrollTop = 900 (цифра может быть другой; в зависимости от положения на странице)
либо jquery:
$("html, body").animate({ scrollTop: 900 }, 1000);
И ссылка никуда не ведет, на ней висит событие onclick, которое и выполняет код.

danik.js 29.12.2013 23:45

Цитата:

Сообщение от AlexVx
И ссылка никуда не ведет, на ней висит событие onclick, которое и выполняет код.

Отличная идея, поисковики оценят)

Цитата:

Сообщение от AlexVx
document.getElementsByTagName('body')[0]

есть же document.body

BETEPAH 30.12.2013 00:14

Цитата:

Сообщение от AlexVx
И ссылка никуда не ведет, на ней висит событие onclick, которое и выполняет код.

Есть какие-то веские основания для этого?
Почему нельзя оставить ссылку, ведущей к якорю, а в обработчике скроллить к этому якорю, отменив действие ссылки?

Valentinka_1 30.12.2013 01:12

Это не помогает, потому что у ссылки указывается href.

<a href="/temp">пример</a>


и при нажатии на эту ссылку страница должна прокручиваться к нужному блоку. Первое, что приходит в голову это якоря, на этогда ссылка будет /#temp а нужно что бы та и оставалось /temp

Vlasenko Fedor 30.12.2013 01:17

http://jsfiddle.net/vlasenkofedor/Q2y57/

Valentinka_1 30.12.2013 01:33

Этот вариант подходит так же как и первый. Проблема в том, что при нажатии на ссылку в урл не добавляется /gosha

Vlasenko Fedor 30.12.2013 01:54

Простите не совсем понял, что вы имеете ввиду.
Цитата:

Сообщение от Valentinka_1
Проблема в том, что при нажатии на ссылку в урл не добавляется /gosha

В url ссылки куда не добавляется? И зачем?
Объясните подробно чего вы хотите добится. Ибо я так-же поддерживаю предположение danik.js, о возможном бане за данное применение.

Valentinka_1 30.12.2013 02:00

Зачем? - поставили такую задачу и нужно решить, я уже голову сломала( Смотрите, мы заходим на сайт, при клике на пункт меню "о компании" url страницы меняется на название сайта/about/ и страница прокручивается до нужного блока. И так с каждым пунктом меню

danik.js 30.12.2013 13:01

Это выпендреж. В итоге получается что по разным url\'ам доступна одна и таже страница. Ничего хорошего в этом нет.
Для этого случая лучше всего подойдут именно якоря! А юзеру абсолютно пофигу че там в адресной строке - site.ru#anchor или site.ru/anchor.

Так зачем использовать худший вариант?


Часовой пояс GMT +3, время: 04:50.