辑导语:在上下滚动页面时,除了出现吸顶,还会出现吸底、锚点等情况,那么这些都是在滚动页面时需要注意的控件。本文作者结合最近工作中的实际项目,对于滑动时的吸顶、锚点规则方式的总结心得,一起来学习下吧。
上下滚动页面时,除了出现吸顶,还会出现吸底、锚点等情况,这些都是在滚动页面时需要注意的控件。
结合最近工作中的实际项目,Cassie将滑动用到的场景进行了提炼,总结出这份控件设计规范,一起来学习吸底、锚点是如何在APP以及PC端应用的吧~
PC端及移动端的底部有一些操作栏,比如表单的填写操作或者支付按钮的放置,移动端底部还会有全局的导航栏,这些会占用一定的空间,可以根据使用场景灵活选择吸底方式。
需要注意吸底的是具有操作价值的内容,吸底元素包括操作按钮、 引导操作、移动端的导航栏…
PC端在表单内容较多、查看内容文章、需要引导用户操作比如支付等场景下,当用户需滑动查看更多内容,可将操作类按钮吸底,需要吸底的内容可以根据布局调整显示。
在左图PC端钉钉邮箱中,属于编辑表单类的,将发送操作按钮固定吸底,用户只需要修改部分字段,更利于快速完成编辑;在PC端简书中,属于内容展示类的,出于增强互动的目的,将评论、点赞等操作固定在底部增加其操作便捷性。
考试星PC端采用左中右布局,将提交考试放在右侧底部,可以不占用考试内容高度空间;百度学术PC端采用左右布局,右侧是一些介绍内容,所以操作按钮固定在和之有直接关系的左侧内容底部。
移动端底部常会有一些吸底的控件,比如底部导航栏、主操作按钮、需要引导或便捷用户操作的控件等。
一级页面导航固定在底部,当该页面有主按钮,比如结算等则将该栏放到导航栏上面,如果还有引导类或便捷操作类控件则再放到主操作栏上面。
移动端,特别是购物车场景存在多条吸底内容。
具有引导性的操作,为了配合主操作而出现,也是固定在底部,但位于底部操作上面,在特定场景下出现。
比如闲鱼提供了一些常用问题,可以跟卖家交流更便捷;考拉海购购物车的优惠引导也是固定在底部,类似的还有京东、淘宝等购物车。
当PC端展示内容分多段,且其中有需要引导用户操作的按钮,建议在滚动到该段时将该操作按钮吸底,滚动到另外一段内容后再取消吸底。
考拉海购PC端的购物车页面,如果购物车内容比较多,支付栏是吸底的,向上滚动到购物车商品内容结束后,支付栏不吸底,下面展示推荐商品。
京东官网的购物车也是这种方式,但移动端主流购物车的支付都是固定在底部的。
吸底内容可以根据具体情况显示或隐藏,这种非固定的方式常用于移动端阅读及查看话题评论时。
在微信读书的阅读状态时,为了给读者提供沉浸式体验,隐藏操作栏,上滑时再显示;在知乎热榜浏览主题内容时,主操作栏跟在内容下面,当页面滑动后主操作栏改变布局样式吸底展示。
锚点以回到顶部也属于页面滚动时需要的控件,配合滚动条用于跳转到页面指定位置。
PC端和移动端都可以在内容过多时使用回到顶部控件,PC端的锚点定位类似导航一样可以放到页面左侧或者右侧,但其实只是页面的内容定位。
移动端可以利用滚动条做时间轴类型的定位或者分页定位。
当PC端页面内容区域比较长时比如瀑布流的使用,用户需要频繁返回顶部查看相关内容时,可以滚动后出现回到顶部控件。
花瓣PC端页面滚动后,右下角有一些功能操作,滚动后出现回到顶部控件。
当页面内容区域比较长时;当用户需要频繁返回顶部查看相关内容时,可以使用回到顶端返回页面顶部。
如果当前页面是主页,可以滚动后主页按钮便成回到顶部按钮,这样可以避免遮挡内容,优化阅读体验。
京东购物车页面除了展示添加到购物车的商品外,底部还有推荐上面,滚动后出现回到顶部控件;每日优鲜APP页面滚动后,导航的主页按钮变成回到顶部按钮,优化体验,类似的还有淘宝、饿了么、考拉等主页有瀑布流的内容。
当PC端有多条组合内容时,可以左侧做一个锚点定位配合滚动条快速定位到页面需要查看的内容。
当PC端使用上下布局时,且内容区域居中固定时,锚点悬浮在左侧显示,当屏幕小于一定尺寸时,锚点缩小悬浮于页面左侧,鼠标移入时再显示。
在优设的网址导航中,由于导航分为多个类型,所以将具体类型名称放到左侧展示,能快速定位到需要的内容。
当PC端左侧有导航,锚点定位可以放到右侧,常用于阅读文章等场景。
在Ant design的组件页,由于左侧有二级导航,所以将页面的锚点定位放在右侧,类似的还有语雀文章阅读。
当有时间类型的内容比如浏览照片时,可以采取时间轴定位的方式快速滑动到需要查看的内容。
内容过多的情况下也可以采取分页的形式,滚动后将分页及回到顶部固定在底部右下角位置。
例如宝宝树APP采用时间轴的方式快速定位,默认状态定位控件缩小固定在右侧,滑动时控件变大显示具体时间,方便用户按时间快速查找照片,类似的还有百度网盘里的照片浏览。
豆瓣APP在电影的讨论模块,选择一个讨论查看详情滚动后底部显示回复的定位锚点,控件放在操作栏上面吸底展示。
作者: Cassie
原文链接:www.zcool.com.cn/article/ZMTM0ODkzMg==.html
本文由 @ Cassie 授权发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
点是一种网页设计技术,它允许用户直接跳转到页面上的特定部分。这种技术在长页面或文档中尤其有用,可以帮助用户快速定位到他们感兴趣的内容。锚点在HTML中通过 <a> 标签的 href 属性与特定的ID结合使用来创建。
锚点链接通常分为两个部分:触发锚点的链接和锚点目标位置。触发锚点的链接是用户可以点击的部分,而锚点目标位置是页面上用户跳转到的部分。
锚点目标是通过给页面上的元素(如标题、段落等)添加 id 属性来创建的。例如:
<h2 id="section1">第一节</h2>
在这个例子中,<h2> 标签有一个 id 属性,其值为 "section1"。这个 id 值在整个页面中应该是唯一的。
一旦定义了锚点目标,就可以创建一个指向它的链接。这是通过 <a> 标签的 href 属性实现的,该属性包含了一个井号 # 后跟锚点目标的 id 值。例如:
<a href="#section1">跳转到第一节</a>
点击这个链接将会使浏览器视窗跳转到 <h2 id="section1"> 所在的位置。
假设我们有一个包含多个章节的长网页,我们希望用户能够快速导航到每个章节。
<body>
<nav>
<ul>
<li><a href="#introduction">简介</a></li>
<li><a href="#chapter1">第一章</a></li>
<li><a href="#chapter2">第二章</a></li>
<li><a href="#conclusion">结论</a></li>
</ul>
</nav>
<section id="introduction">
<h2>简介</h2>
<p>这里是简介的内容...</p>
</section>
<section id="chapter1">
<h2>第一章</h2>
<p>这里是第一章的内容...</p>
</section>
<section id="chapter2">
<h2>第二章</h2>
<p>这里是第二章的内容...</p>
</section>
<section id="conclusion">
<h2>结论</h2>
<p>这里是结论的内容...</p>
</section>
</body>
在上述代码中,我们创建了一个导航菜单,其中包含了指向页面不同部分的锚点链接。每个 <section> 元素都有一个唯一的 id,这些 id 与导航菜单中的链接相对应。
我们还可以使用CSS来改善用户的视觉体验,例如,当用户点击锚点链接时,通过平滑滚动到锚点目标位置:
html {
scroll-behavior: smooth;
}
这个简单的CSS规则会使所有的锚点跳转都有一个平滑的滚动效果。
虽然锚点功能本身不需要JavaScript,但我们可以使用JavaScript来增强用户体验。例如,我们可以在用户点击锚点链接后高亮显示目标章节:
document.querySelectorAll('nav a').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).classList.add('highlight');
});
});
这段代码会在点击导航链接时,阻止默认跳转行为,并为对应的章节添加 highlight 类,你可以定义这个类来改变背景色或字体样式,以突出显示用户跳转到的部分。
锚点是一种非常实用的网页设计技术,它可以极大地提升用户导航长页面的体验。通过简单的HTML标签和属性,我们可以创建清晰的导航链接,让用户快速找到他们感兴趣的内容。通过CSS和JavaScript的增强,我们还可以提供更加流畅和互动的用户体验。无论是在单页应用、在线文档还是博客文章中,锚点都是提高网站可用性的有效工具。
起html的锚点这个概念,你可能会感到会陌生,感觉自己没有听过。但是如果说起它的作用,你可能就恍然大悟了,就像你说起一个演员,可能不知道是谁,但是说起它演的一个角色可能立马就知道那个人是谁了。
那么,什么是锚点呢?
锚点存在于html中,在默认情况下,可以快速的定位到指定元素,并将元素置于页面最顶端。当然我们可以按照自己的需求来确定锚点的位置,不一定要让其定位在顶部。现如今有无数多的页面已经用上了锚点,比如Vue.js的官网,在我们点击标题“Vue.js是什么”和标题“起步”的时候,标题都会自动移到页面顶端。
锚点的使用
那接下来,我们就来看看几种锚点的使用方法。
id定位
最基本的使用方法如下,当点击<a>标签时,页面会相应的将该div内容置顶
锚点的id定位方法
name定位
除了id,还可以通过name进行定位,不过需要主要的是,如果采用name属性进行定位的话,只适用于a标签,类似于p标签等都不支持。
锚点的name定位方法
javascript代码进行定位
在原生的javascript中,有一个scrollIntoView()方法,可以实现页面的锚点
javascript方法实现锚点
一个综合的例子
讲了三种实现方法后,接下来看一个实际运用的例子。首先是实际效果图,在点击左侧栏时,页面右边会相应的显示指定段落的内容
锚点的实际使用
首先看下html页面的内容,左侧的ul代码
左侧的ul代码
右侧的内容部分代码
右侧内容部分代码
css部分的代码
css部分的代码
将上述的代码写在一个html文件中,便可实现左侧栏点击,右侧栏显示相应内容的效果。
特殊情况
在实际项目中,我们总会遇到这样一种情况,在页面顶部有固定头内容的时候,如果直接使用上述方法,会得不到想要的效果
直接使用锚点的效果图
通过该图可以看出,第三段内容的标题被遮住了,实际应该往下再显示一点
那么,我们该怎么解决这个问题呢?在这里我想到了两种方法,第一种是在每个内容div上加一个隐藏的p元素,给p元素一个定高,再向上偏移,这种方法会导致页面出现很多个多余的p元素,不推荐使用。
第二种是利用伪元素,伪元素可以占用实际的高度,这是推荐使用的方法
伪元素的样式
通过给h3标签添加伪元素样式,可完美解决这个问题,效果图如下
使用伪元素后的效果图
总结
今天的内容你会了么?如果还没有掌握的话,可以按照文章中的代码,进行实践,代码总是要多敲才更容易理解。
如果喜欢的话,记得关注小编噢,小编后续会坚持出更多技术性的文章,如果有任何问题,也欢迎提问,小编都会尽力解答的。
*请认真填写需求信息,我们会在24小时内与您取得联系。