当前位置: 首页 > 知识库问答 >
问题:

前端 - 请问小红书的banner滚动的指示器效果如何实现的?

燕超
2024-01-16

请问小红书的banner滚动的指示器效果如何实现的,有没有巨佬提供一下思路。
效果可以看一下这个帖子https://blog.csdn.net/tijjyire/article/details/124668962

共有2个答案

卜盛
2024-01-16

看 swiper https://www.swiper.com.cn/demo/index.html 分页器 / 动态指示点(040)

测试传送门,swiper 是开源的,直接看源码就行

有德业
2024-01-16

以下是一个可能的实现方案:

  1. 使用 HTML 和 CSS 创建一个指示器,可以使用一个带有边框的矩形来表示每个指示器,并使用 CSS 的动画效果来滚动它们。
  2. 使用 JavaScript 来控制指示器的滚动。可以使用定时器函数(如 setInterval)来不断更新指示器的位置,使其看起来像是在滚动。
  3. 在每个指示器上添加一个链接,当用户点击链接时,页面会滚动到对应的 banner 上。可以使用锚点链接(Anchor Link)来实现这一点。

下面是一个简单的示例代码:

HTML:

<div class="banner">  <div class="indicator"></div>  <div class="indicator"></div>  <div class="indicator"></div></div>

CSS:

.banner {  position: relative;  height: 300px;  overflow: hidden;}.indicator {  position: absolute;  width: 100%;  height: 10px;  background-color: #000;  animation: scroll 15s linear infinite;}.indicator:nth-child(1) {  animation-delay: 0s;}.indicator:nth-child(2) {  animation-delay: 5s;}.indicator:nth-child(3) {  animation-delay: 10s;}@keyframes scroll {  0% { left: 0%; }  20% { left: 0%; }  25% { left: -100%; }  45% { left: -100%; }  50% { left: -200%; }  70% { left: -200%; }  75% { left: -300%; }  95% { left: -300%; }  100% { left: -400%; }}

JavaScript:

const indicators = document.querySelectorAll('.indicator');const banner = document.querySelector('.banner');const links = document.querySelectorAll('a'); // 获取所有链接元素,可以按需选择适当的元素选择器来获取链接元素。const indicatorCount = indicators.length; // 指示器数量,可以根据实际情况调整。const indicatorWidth = indicators[0].offsetWidth; // 指示器宽度,可以根据实际情况调整。const indicatorSpeed = 20; // 指示器滚动速度,可以根据实际情况调整。单位为毫秒。const linkOffsetTop = 80; // 链接偏移量,可以根据实际情况调整。单位为像素。let currentIndex = 0; // 当前索引值,初始化为 0。根据实际需求调整。let linkIndex = 0; // 链接索引值,初始化为 0。根据实际需求调整。let timerId = null; // 定时器 ID,用于控制指示器的滚动。初始化为 null。根据实际需求调整。
 类似资料:
  • (70分钟😭~ 1. 自我介绍 2. 实习情况 3. 用langchain编排节点具体是什么操作的 4. 问了另一个ai开源(没了解) 5. 项目 6. 组件封装 7. 组件间传值 8. 虚拟列表 9. vue2和vue3的区别 10. vue3的proxy 11. reactive回初始值 12. 事件循环题目 13. 括号匹配 14. 出勤问题

  • 整个流程很快,但最后由于那个部门太卷了又是 996,就不打算去了。 一面 项目深挖(20min) 实现一个 Tooltip 实现一个 Promise.all & Promise.allSettled 实现一个 URL 解析 React.memo/useCallback/useEffect 二面

  • 0.总时长50分钟 1.自我介绍 2.代码场景题 1.手写js数据类型,循环用法,letconst输出 2.css绘制同心圆 3.事件循环输出 4.三数之和 3.状态码大全 4.跨域【cors,jsonp,反向代理(追问反向代理正向代理)】 5.反问 点评:上来就写代码很恐怖,算法没oc太倒霉了只写出一部分。

  • 本文向大家介绍什么是视差滚动?如何实现视差滚动的效果?相关面试题,主要包含被问及什么是视差滚动?如何实现视差滚动的效果?时的应答技巧和注意事项,需要的朋友参考一下 什么是视差滚动: 就是在同一视角下,鼠标或者页面滚动时,不同元素以不同的速率跟随滚动,产生生动的效果。 如何实现视差滚动: 根据页面滚动高度的变化,JS相应调整不同元素的不同位移,常见的插件有 parallax.js,以及更多的推荐《1

  • 这种地图效果是叫什么?具体该使用哪种技术实现,如何实现,有具体的示例吗?

  • #小红书##前端##面经#