jquery - 带有特殊字符的 jQuery 平滑滚动
问题描述
此 jQuery 代码添加了平滑滚动。但它仅适用于“#section-1”或“#1”等“普通”锚点。它不适用于这些锚点,例如:“#Section 1”。是否可以更改适用于所有字符的脚本。
$(document).on('click', 'a[href^="#"]', function (event) {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 1000);
});
解决方案
使用特殊字符可以正常工作。
$(document).on('click', 'a[href^="#"]', function(event) {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 1000);
});
div {
padding: 5rem;
line-height: 2rem;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href='#Äpfel'>Äpfel</a>
<a href='#Section1'>Section1</a>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sed pulvinar proin gravida hendrerit lectus. Mauris in aliquam sem fringilla ut morbi tincidunt. Nulla at volutpat diam ut venenatis.
Purus viverra accumsan in nisl nisi scelerisque. Neque vitae tempus quam pellentesque nec nam aliquam sem et. Habitant morbi tristique senectus et netus. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Scelerisque purus semper eget duis
at tellus at. Arcu dui vivamus arcu felis bibendum ut. Eget mi proin sed libero enim sed faucibus turpis in. Tempor orci dapibus ultrices in iaculis nunc. Commodo elit at imperdiet dui accumsan sit. Nunc congue nisi vitae suscipit tellus mauris a diam.
Sit amet est placerat in egestas erat imperdiet. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Ipsum dolor sit amet consectetur adipiscing elit ut. Dignissim sodales ut eu sem integer vitae justo eget. Arcu cursus euismod quis viverra
nibh.
<br><br> Sed odio morbi quis commodo odio aenean sed adipiscing diam. Neque gravida in fermentum et sollicitudin ac orci. Viverra nam libero justo laoreet sit amet cursus. Nunc faucibus a pellentesque sit amet porttitor eget dolor morbi. Tincidunt id
aliquet risus feugiat in ante. Suscipit adipiscing bibendum est ultricies integer quis auctor elit. Eget velit aliquet sagittis id consectetur purus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Adipiscing bibendum est ultricies integer
quis. Congue nisi vitae suscipit tellus mauris a. Sed risus ultricies tristique nulla aliquet enim tortor at. Enim nec dui nunc mattis enim ut tellus. Mi bibendum neque egestas congue quisque egestas. Cursus risus at ultrices mi. Sed nisi lacus sed
viverra tellus in hac habitasse. Vitae elementum curabitur vitae nunc sed.
<br><br> Aliquet nec ullamcorper sit amet risus nullam eget. At consectetur lorem donec massa sapien faucibus et molestie. Eget egestas purus viverra accumsan in nisl. Ac tortor dignissim convallis aenean et tortor. Tortor posuere ac ut consequat semper
viverra. Etiam non quam lacus suspendisse faucibus. Non consectetur a erat nam at lectus urna duis convallis. Tincidunt eget nullam non nisi est sit. Tellus id interdum velit laoreet. Leo a diam sollicitudin tempor id. Dui faucibus in ornare quam viverra.
Massa tincidunt dui ut ornare lectus sit. Tellus orci ac auctor augue mauris augue neque gravida. Nunc consequat interdum varius sit amet mattis vulputate. Morbi blandit cursus risus at ultrices mi tempus. Pellentesque habitant morbi tristique senectus
et. Massa eget egestas purus viverra accumsan in nisl nisi scelerisque. Amet porttitor eget dolor morbi non arcu.
<br><br> Et malesuada fames ac turpis egestas maecenas pharetra convallis posuere. Donec ac odio tempor orci. Aliquam nulla facilisi cras fermentum odio eu feugiat pretium nibh. Viverra suspendisse potenti nullam ac tortor. Fermentum posuere urna nec
tincidunt praesent semper feugiat nibh. Est velit egestas dui id ornare arcu odio ut. Etiam erat velit scelerisque in dictum non. Nisi porta lorem mollis aliquam. Egestas sed sed risus pretium quam vulputate dignissim suspendisse. Euismod nisi porta
lorem mollis aliquam ut. Ac feugiat sed lectus vestibulum mattis ullamcorper velit. Vulputate ut pharetra sit amet aliquam. Risus commodo viverra maecenas accumsan lacus vel facilisis. Tristique senectus et netus et malesuada fames ac turpis.
<br><br> Suscipit tellus mauris a diam maecenas sed. Volutpat odio facilisis mauris sit amet massa vitae. Quis varius quam quisque id diam. Ac auctor augue mauris augue neque. Morbi tempus iaculis urna id volutpat lacus. Nibh ipsum consequat nisl vel
pretium lectus quam id leo. Felis imperdiet proin fermentum leo vel. Id semper risus in hendrerit. Massa ultricies mi quis hendrerit dolor magna eget est. Quam elementum pulvinar etiam non quam lacus suspendisse faucibus. Auctor neque vitae tempus quam
pellentesque nec. Amet cursus sit amet dictum sit amet justo donec enim. Molestie a iaculis at erat pellentesque. Sed tempus urna et pharetra pharetra massa. Sapien nec sagittis aliquam malesuada.
<h2 id='Äpfel'>Example headline</h2>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sed pulvinar proin gravida hendrerit lectus. Mauris in aliquam sem fringilla ut morbi tincidunt. Nulla at volutpat diam ut venenatis.
Purus viverra accumsan in nisl nisi scelerisque. Neque vitae tempus quam pellentesque nec nam aliquam sem et. Habitant morbi tristique senectus et netus. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Scelerisque purus semper eget duis
at tellus at. Arcu dui vivamus arcu felis bibendum ut. Eget mi proin sed libero enim sed faucibus turpis in. Tempor orci dapibus ultrices in iaculis nunc. Commodo elit at imperdiet dui accumsan sit. Nunc congue nisi vitae suscipit tellus mauris a diam.
Sit amet est placerat in egestas erat imperdiet. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Ipsum dolor sit amet consectetur adipiscing elit ut. Dignissim sodales ut eu sem integer vitae justo eget. Arcu cursus euismod quis viverra
nibh.
<br><br> Sed odio morbi quis commodo odio aenean sed adipiscing diam. Neque gravida in fermentum et sollicitudin ac orci. Viverra nam libero justo laoreet sit amet cursus. Nunc faucibus a pellentesque sit amet porttitor eget dolor morbi. Tincidunt id
aliquet risus feugiat in ante. Suscipit adipiscing bibendum est ultricies integer quis auctor elit. Eget velit aliquet sagittis id consectetur purus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Adipiscing bibendum est ultricies integer
quis. Congue nisi vitae suscipit tellus mauris a. Sed risus ultricies tristique nulla aliquet enim tortor at. Enim nec dui nunc mattis enim ut tellus. Mi bibendum neque egestas congue quisque egestas. Cursus risus at ultrices mi. Sed nisi lacus sed
viverra tellus in hac habitasse. Vitae elementum curabitur vitae nunc sed.
<br><br> Aliquet nec ullamcorper sit amet risus nullam eget. At consectetur lorem donec massa sapien faucibus et molestie. Eget egestas purus viverra accumsan in nisl. Ac tortor dignissim convallis aenean et tortor. Tortor posuere ac ut consequat semper
viverra. Etiam non quam lacus suspendisse faucibus. Non consectetur a erat nam at lectus urna duis convallis. Tincidunt eget nullam non nisi est sit. Tellus id interdum velit laoreet. Leo a diam sollicitudin tempor id. Dui faucibus in ornare quam viverra.
Massa tincidunt dui ut ornare lectus sit. Tellus orci ac auctor augue mauris augue neque gravida. Nunc consequat interdum varius sit amet mattis vulputate. Morbi blandit cursus risus at ultrices mi tempus. Pellentesque habitant morbi tristique senectus
et. Massa eget egestas purus viverra accumsan in nisl nisi scelerisque. Amet porttitor eget dolor morbi non arcu.
<h2 id="Section1">Example headline</h2>
Et malesuada fames ac turpis egestas maecenas pharetra convallis posuere. Donec ac odio tempor orci. Aliquam nulla facilisi cras fermentum odio eu feugiat pretium nibh. Viverra suspendisse potenti nullam ac tortor. Fermentum posuere urna nec tincidunt
praesent semper feugiat nibh. Est velit egestas dui id ornare arcu odio ut. Etiam erat velit scelerisque in dictum non. Nisi porta lorem mollis aliquam. Egestas sed sed risus pretium quam vulputate dignissim suspendisse. Euismod nisi porta lorem mollis
aliquam ut. Ac feugiat sed lectus vestibulum mattis ullamcorper velit. Vulputate ut pharetra sit amet aliquam. Risus commodo viverra maecenas accumsan lacus vel facilisis. Tristique senectus et netus et malesuada fames ac turpis.
<br><br> Suscipit tellus mauris a diam maecenas sed. Volutpat odio facilisis mauris sit amet massa vitae. Quis varius quam quisque id diam. Ac auctor augue mauris augue neque. Morbi tempus iaculis urna id volutpat lacus. Nibh ipsum consequat nisl vel
pretium lectus quam id leo. Felis imperdiet proin fermentum leo vel. Id semper risus in hendrerit. Massa ultricies mi quis hendrerit dolor magna eget est. Quam elementum pulvinar etiam non quam lacus suspendisse faucibus. Auctor neque vitae tempus quam
pellentesque nec. Amet cursus sit amet dictum sit amet justo donec enim. Molestie a iaculis at erat pellentesque. Sed tempus urna et pharetra pharetra massa. Sapien nec sagittis aliquam malesuada.
<br><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sed pulvinar proin gravida hendrerit lectus. Mauris in aliquam sem fringilla ut morbi tincidunt. Nulla at volutpat diam
ut venenatis. Purus viverra accumsan in nisl nisi scelerisque. Neque vitae tempus quam pellentesque nec nam aliquam sem et. Habitant morbi tristique senectus et netus. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Scelerisque purus
semper eget duis at tellus at. Arcu dui vivamus arcu felis bibendum ut. Eget mi proin sed libero enim sed faucibus turpis in. Tempor orci dapibus ultrices in iaculis nunc. Commodo elit at imperdiet dui accumsan sit. Nunc congue nisi vitae suscipit tellus
mauris a diam. Sit amet est placerat in egestas erat imperdiet. Accumsan tortor posuere ac ut consequat semper viverra nam libero. Ipsum dolor sit amet consectetur adipiscing elit ut. Dignissim sodales ut eu sem integer vitae justo eget. Arcu cursus
euismod quis viverra nibh.
<br><br> Sed odio morbi quis commodo odio aenean sed adipiscing diam. Neque gravida in fermentum et sollicitudin ac orci. Viverra nam libero justo laoreet sit amet cursus. Nunc faucibus a pellentesque sit amet porttitor eget dolor morbi. Tincidunt id
aliquet risus feugiat in ante. Suscipit adipiscing bibendum est ultricies integer quis auctor elit. Eget velit aliquet sagittis id consectetur purus. Id aliquet lectus proin nibh nisl condimentum id venenatis. Adipiscing bibendum est ultricies integer
quis. Congue nisi vitae suscipit tellus mauris a. Sed risus ultricies tristique nulla aliquet enim tortor at. Enim nec dui nunc mattis enim ut tellus. Mi bibendum neque egestas congue quisque egestas. Cursus risus at ultrices mi. Sed nisi lacus sed
viverra tellus in hac habitasse. Vitae elementum curabitur vitae nunc sed.
<br><br> Aliquet nec ullamcorper sit amet risus nullam eget. At consectetur lorem donec massa sapien faucibus et molestie. Eget egestas purus viverra accumsan in nisl. Ac tortor dignissim convallis aenean et tortor. Tortor posuere ac ut consequat semper
viverra. Etiam non quam lacus suspendisse faucibus. Non consectetur a erat nam at lectus urna duis convallis. Tincidunt eget nullam non nisi est sit. Tellus id interdum velit laoreet. Leo a diam sollicitudin tempor id. Dui faucibus in ornare quam viverra.
Massa tincidunt dui ut ornare lectus sit. Tellus orci ac auctor augue mauris augue neque gravida. Nunc consequat interdum varius sit amet mattis vulputate. Morbi blandit cursus risus at ultrices mi tempus. Pellentesque habitant morbi tristique senectus
et. Massa eget egestas purus viverra accumsan in nisl nisi scelerisque. Amet porttitor eget dolor morbi non arcu.
<br><br> Et malesuada fames ac turpis egestas maecenas pharetra convallis posuere. Donec ac odio tempor orci. Aliquam nulla facilisi cras fermentum odio eu feugiat pretium nibh. Viverra suspendisse potenti nullam ac tortor. Fermentum posuere urna nec
tincidunt praesent semper feugiat nibh. Est velit egestas dui id ornare arcu odio ut. Etiam erat velit scelerisque in dictum non. Nisi porta lorem mollis aliquam. Egestas sed sed risus pretium quam vulputate dignissim suspendisse. Euismod nisi porta
lorem mollis aliquam ut. Ac feugiat sed lectus vestibulum mattis ullamcorper velit. Vulputate ut pharetra sit amet aliquam. Risus commodo viverra maecenas accumsan lacus vel facilisis. Tristique senectus et netus et malesuada fames ac turpis.
<br><br> Suscipit tellus mauris a diam maecenas sed. Volutpat odio facilisis mauris sit amet massa vitae. Quis varius quam quisque id diam. Ac auctor augue mauris augue neque. Morbi tempus iaculis urna id volutpat lacus. Nibh ipsum consequat nisl vel
pretium lectus quam id leo. Felis imperdiet proin fermentum leo vel. Id semper risus in hendrerit. Massa ultricies mi quis hendrerit dolor magna eget est. Quam elementum pulvinar etiam non quam lacus suspendisse faucibus. Auctor neque vitae tempus quam
pellentesque nec. Amet cursus sit amet dictum sit amet justo donec enim. Molestie a iaculis at erat pellentesque. Sed tempus urna et pharetra pharetra massa. Sapien nec sagittis aliquam malesuada.
</div>
推荐阅读
- regex - NPS 的多个 IP 和范围和子网的正则表达式
- postgresql - Docker Compose 和 Postgres:名称无法解析
- sql-server - 使用 CHARINDEX 和 COLLATION 对匹配词进行性能调整
- regex - 从长字符串中提取数量(数字)
- javascript - 在地图中显示子模式的最佳方式?
- laravel - vue js 不是函数
- sql - 如何找到使用 SQL 中的函数计算计数的组的最大计数?
- angular - “FirebaseOriginal”类型不可分配给“Provider”类型。名称未找到问题
- php - 为什么 Doctrine Param_str_array 转换没有按预期工作?
- build - 是否可以创建一个 Windows 安装程序来结合使用 Electron 框架和 AutoHotkey 工具构建的应用程序?