Как убрать автопрокрутку браузера до идентификатора div? - PullRequest
1 голос
/ 07 декабря 2011

На своей веб-странице я использую вертикальный аккордеон в центре, чтобы перечислить некоторое содержимое. Когда страница загружена, аккордеон находится посередине. Но когда пользователь нажимает на вкладку аккордеона, вся страница прокручивается вверх, делая вкладку аккордеона вверху браузера. Как я могу избежать этой реакции. Я хочу, чтобы пользователи оставались на самой части страницы без автоматической прокрутки. Есть ли какое-нибудь решение?

Когда пользователь нажимает на вкладку аккордеона, URL страницы становится http://web.com/#tab_1. Но я не могу удалить идентификатор из аккордеона, так как для работы ему нужен идентификатор. Любое другое решение?

Ответы [ 4 ]

1 голос
/ 07 декабря 2011

В вашем обработчике кликов вы должны запретить действие по умолчанию для клика по ссылкам (а именно, прокрутку до якоря).Какой-то псевдокод, так как я не знаю, как настроен твой аккордеон:

$("#accordion a").click(function(e)) {
  e.preventDefault(); // This prevents the scrolling from occuring
  $("#accordion").activate($(this).attr('id'));
});
0 голосов
/ 11 декабря 2011

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

Добавить скрипт

<%--Magic Script that maintains position on partial rendering and click--%>
<script type="text/javascript">
    window.scrollTo = function (x, y) {
        return true;
    }
</script>
0 голосов
/ 07 декабря 2011

Я не верю, что существует простой способ на основе CSS, чтобы избежать того факта, что псевдо-селектор: target поставляется с поведением браузера по умолчанию для ссылок на фрагменты URL, то есть для прокрутки к рассматриваемому элементу.Вам придется добавить это с помощью JS, как и предлагали другие.

0 голосов
/ 07 декабря 2011

onclick используйте preventDefault это решит вашу проблему

...