#javascript #html
#javascript #HTML
Вопрос:
В моем приложении слева находится панель навигации, а справа — содержимое на панели. Когда вы нажимаете на элемент в панели навигации, он динамически загружает содержимое в панель содержимого с помощью jQuery ajax. Когда контент загружен, я обновляю URL браузера. Например:
www.mysite.com/content.html#section1
www.mysite.com/content.html#section2
www.mysite.com/content.html#section3
В содержимом я хотел бы иметь ссылки на другие области в пределах того же содержимого, чтобы при нажатии на него содержимое прокручивалось до него. Если я использую типичные теги привязки, URL браузера будет обновлен, чего я хочу избежать. Я могу использовать обработчик кликов и некоторый Javascript для прокрутки до него. Но мне интересно, есть ли способ выполнить это без Javascript.
Ответ №1:
Можете ли вы выполнить это без Javascript? Ответ — нет, вы не можете.
Вам нужно использовать пользовательское событие щелчка.
Ответ №2:
<!DOCTYPE html>
<html>
<head>
<style>
html {
scroll-behavior: smooth;
}
#section1 {
height: 600px;
background-color: pink;
}
#section2 {
height: 600px;
background-color: yellow;
}
</style>
</head>
<body>
<h1>Smooth Scroll</h1>
<div class="main" id="section1">
<h2>Section 1</h2>
<p>Click on the link to see the "smooth" scrolling effect.</p>
<a href="#section2">Click Me to Smooth Scroll to Section 2 Below</a>
<p>Note: Remove the scroll-behavior property to remove smooth scrolling.</p>
</div>
<div class="main" id="section2">
<h2>Section 2</h2>
<a href="#section1">Click Me to Smooth Scroll to Section 1 Above</a>
</div>
</body>
</html>
Ссылка PFB, которая может оказаться полезной:
https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_smooth_scroll
Комментарии:
1. Я считаю, что это обновляет URL браузера. Вы не видите этого в приведенном вами примере, потому что w3schools заключает тестовый код во фрейм.
2. точно, просто создайте образец html-файла и вставьте его, а затем попробуйте запустить.
3. Поддержите это как правильный ответ, если это решило вашу проблему