使用html滚动到特定元素
在html中是否有一种方法可以使用html使网页滚动到特定的元素 是的,你用这个使用html滚动到特定元素,html,css,Html,Css,在html中是否有一种方法可以使用html使网页滚动到特定的元素 是的,你用这个 <a href="#google"></a> <div id="google"></div> 是的,您可以通过指定元素的id属性,然后使用哈希链接到它来使用 例如(摘自W3规范): 您可以在中阅读更多关于此的信息。 …在文件后面 第二节 …在文件后面 请参阅上文 更多细节。 通过在锚定标记中使用href属性,您可以使用元素id名称前面的#将页面滚动到特定元素 此
<a href="#google"></a>
<div id="google"></div>
是的,您可以通过指定元素的id
属性,然后使用哈希链接到它来使用
例如(摘自W3规范):
您可以在中阅读更多关于此的信息。
…在文件后面
第二节
…在文件后面
请参阅上文
更多细节。
通过在锚定标记中使用href属性,您可以使用元素id名称前面的#
将页面滚动到特定元素
此外,这里还有一些jQuery/JS,它们将完成将变量放入div中的任务
<html>
<body>
Click <a href="#myContent">here</a> to scroll to the myContent section.
<div id="myContent">
...
</div>
<script>
var myClassName = "foo";
$(function() {
$("#myContent").addClass(myClassName);
});
</script>
</body>
单击以滚动到myContent部分。
...
var myClassName=“foo”;
$(函数(){
$(“#myContent”).addClass(myClassName);
});
您应该提到是希望它平滑滚动还是简单地跳转到某个元素。
跳转很简单&只需使用HTML或Javascript即可完成。最简单的方法是使用anchor。限制是您要滚动到的每个元素都必须具有id
。一个副作用是#theID
将附加到URL
<a href="#scroll">Go to Title</a>
<div>
<h1 id="scroll">Title</h1>
</div>
最后,如果您需要平滑滚动,您应该查看jQuery的or。(注意:可能还有更多)。如果使用,可以将以下内容添加到javascript中:
$('.smooth-goto').on('click', function() {
$('html, body').animate({scrollTop: $(this.hash).offset().top - 50}, 1000);
return false;
});
另外,也不要忘记将此类添加到a标记中,如下所示:
<a href="#id-of-element" class="smooth-goto">Text</a>
/*CSS*/
html{滚动行为:平滑;}
此外,您可以将html{scroll behavior:smooth;}添加到CSS中以创建平滑滚动。
1.
2.
3.
*{填充:0;边距:0;}
导航{
背景:黑色;
位置:固定;
}
a{
颜色:#fff;
显示:内联块;
填充:0.1em;
高度:50px;
}
部分{
背景:红色;
高度:100vh;
文本对齐:居中;
字号:5em;
}
html{
滚动行为:平滑;
}
#第一节{
背景颜色:绿色;
}
#第三节{
背景颜色:黄色;
}
$(文档)。在('click','a[href^=“#”]”上,函数(事件){
event.preventDefault();
$('html,body')。设置动画({
scrollTop:$($.attr(此'href')).offset().top
}, 500);
});
2020年。现在我们有了element.scrollIntoView()
方法来滚动到特定的元素
HTML
好的是,我们可以从任何onclick/event启动,而不必局限于tag。以上答案都是正确的。但是,代码可能不会给出预期的结果。请允许我补充一点,解释为什么这一点非常重要 确实,将scroll behavior:smooth添加到html元素可以使整个页面平滑滚动。但是,并非所有的web浏览器都支持使用HTML平滑滚动 因此,如果您想创建一个所有用户都可以访问的网站,不管他们的web浏览器如何,强烈建议使用JavaScript或JavaScript库(如jQuery)来创建一个适用于所有浏览器的解决方案 否则,一些用户可能无法享受网站/平台的平滑滚动 我可以举一个更简单的例子说明它如何适用
$(文档).ready(函数(){
//添加平滑滚动到所有链接
$(“a”)。在('click',函数(事件){
//在覆盖默认行为之前,请确保this.hash具有值
如果(this.hash!==“”){
//防止默认锚点单击行为
event.preventDefault();
//存储散列
var hash=this.hash;
//使用jQuery的animate()方法添加平滑页面滚动
//可选数字(800)指定滚动到指定区域所需的毫秒数
$('html,body')。设置动画({
scrollTop:$(散列).offset().top
},800,函数(){
//完成滚动后,将哈希(#)添加到URL(默认单击行为)
window.location.hash=散列;
});
}//如果结束,则结束
});
});
#第一节{
高度:600px;
背景颜色:粉红色;
}
#第2节{
高度:600px;
背景颜色:黄色;
}
平滑滚动
第一节
点击链接查看“平滑”滚动效果
注意:删除滚动行为属性可删除平滑滚动
第二节
如果您想使用插件,您可以完成这项工作。它执行实际的滚动,而不仅仅是跳跃。您甚至可以指定滚动的速度/动量。它还允许您设置一个菜单(要滚动到的链接列表),根据要滚动到的锚是否在视口中以及其他有用的功能更改它们的CSS
有一个演示,让我们的公司站点也是一个.< /p> 我通过这样做来工作,认为首页是你想滚动到的元素:
document.getElementById("top-page").scrollTo({ behavior: "smooth", top: 0 });
谢谢,我很感激,但是我们可以在div标签中放一个变量吗?您可以使用js在div标签中放一个变量。您也可以使用PHP.A变量?你能解释一下吗?是的,如果这就是你想要的,尼古拉斯在回答你的问题时是怎么说的。不过如果你能访问PHP,我建议你使用它。如果你想创建一个搜索查询来跳转到页面中的某个元素,你只需要一些小的JSUpdated my post,其中有一个使用JS将变量放入div的示例。你是专门询问HTML从而排除Javascript吗?如果有id就可以了,一个div头或一个名字在发送到浏览器之前植入到页面中。但是,如果这里没有任何条目标记,而您只想直接引用特定的文本,您可以这样做吗?是否可以在没有用户干预的情况下从外部触发浏览器的搜索功能(Ctrl+F)?Check ref:仔细检查浏览器兼容性表
$('.smooth-goto').on('click', function() {
$('html, body').animate({scrollTop: $(this.hash).offset().top - 50}, 1000);
return false;
});
<a href="#id-of-element" class="smooth-goto">Text</a>
<!-- HTML -->
<a href="#google"></a>
<div id="google"></div>
/*CSS*/
html { scroll-behavior: smooth; }
<div id="my_element">
</div>
var my_element = document.getElementById("my_element");
my_element.scrollIntoView({
behavior: "smooth",
block: "start",
inline: "nearest"
});
document.getElementById("top-page").scrollTo({ behavior: "smooth", top: 0 });