Внутренняя ссылка без идентификатора в URL

0

Если нам нужно перейти в верхнюю часть, мы можем просто написать код

<a href="#top">link to top</a>

или просто код javascript

location.href=#top

Результат: он переводит нас на верхнюю страницу с URL-адресом: http://fiddle.jshell.net/_display/#top.

Но что моя проблема, я не хочу показывать /# верхний запрос в строке url, но я хочу, чтобы моя страница была в этом верхнем разделе. Причина, почему я не хочу показывать эту строку в URL-адресе, моя страница застревает, если браузер не находит "id" с именем top. Контекст или информация, которую я показываю, находятся внутри диалогового окна, чтобы после диалогового окна закрыт, нет имени id сверху, а затем, когда пользователь пытается обновить эту страницу, то есть http://fiddle.jshell.net/_display/#top, страница застревает.

Может ли кто-нибудь дать лучшее решение этой проблемы?

Теги:
hyperlink

3 ответа

1
Лучший ответ

Пытаться

$(".link").on("click", function(e) {
  $("body").animate({scrollTop: $(".link").not(this).offset().top}, 500);
  return false
})
#top, #bottom {
  height:400px;
  width:100%;
  display:block;
}

div:nth-of-type(1) {
  background:blue;
}

div:nth-of-type(2) {
  background:orange;
}

span {
  background:yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="top">top <span class="link">go to bottom</span></div>
<div id="bottom">bottom <span class="link">go to top</span></div>
  • 0
    $ (". dialogImport"). animate ({scrollTop: $ ("# info"). not (this) .offset (). top}, 500); я написал это в моем окне консоли. Я получил свой контент, но прокрутка не работает. какое-либо решение для этого?
  • 0
    Может ли создавать стековые папки ? Blog.stackoverflow.com/2014/09/… , jsfiddle jsfiddle.net ?
Показать ещё 1 комментарий
2

У вас мало вариантов...

Вы можете использовать чистый Javscript:

window.scrollTo(X, Y); (obvisourly X и Y - координаты прокрутки, а top - 0,0).

Другой вариант (пока не основанный на jQuery) может быть:

document.body.scrollTop = document.documentElement.scrollTop = 0;

Если вы предпочитаете решение на основе jQuery, попробуйте следующее:

$(document).scrollTop(0);

Или, также:

$(window).scrollTop(0);

Используйте вариант, который лучше соответствует вашим потребностям.

Наслаждайтесь кодированием.

  • 0
    Спасибо за ответ . Я обнаружил, что он прокручивает окно браузера, но я собираюсь прокрутить диалоговое окно. В любом случае, я проголосовал за ваш ответ, узнав что-то новое. Спасибо
  • 0
    Вопрос: вам нужно «удалить» объект диалога из DOM? Вы не можете просто скрыть это? Может быть, использовать «display: none»? Другой вопрос: почему бы не поместить #reference вне диалога?
Показать ещё 2 комментария
0

Демо здесь

Html

 <div id="div1" style="height: 1000px; width 100px">
    Test
</div>
<br/>
<div id="div2" style="height: 1000px; width 100px">
    Test 2
</div>
<button id="click">Click me</button>

Jquery

 $(document).ready(function (){
            $("#click").click(function (){
                //$(this).animate(function(){
                    $('html, body').animate({
                        scrollTop: $("#div1").offset().top
                    }, 2000);
                //});
            });
        });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню