组件:返回顶部按钮

返回顶部按钮组件用于在页面滚动到一定距离后,自动显示一个悬浮按钮,点击后平滑滚动回到页面顶部。它支持自定义图标、大小、形状、颜色、位置偏移和显示阈值,并可指定滚动监听容器(默认为整个窗口)。适用于长内容页面、文档阅读、电商列表等需要快速返回顶部的场景。

典型使用场景:

  • 长文章/文档阅读(博客、帮助文档)
  • 商品列表/搜索结果页(无限滚动后快速返回顶部)
  • 单页应用的长页面(仪表盘、数据报表)
  • 移动端页面(方便拇指操作)

📌 继承自视图的成员速查

本组件继承自 视图 类,可直接使用以下属性和方法:

属性: ID、左边、顶边、右边、底边、宽度、高度、背景、背景颜色、背景图像、文本、文本颜色、字体、字体大小、字体粗细、行高、边框、边框圆角、边框宽度、光标样式、显示模式、透明度、外边距、外边距底、外边距左、外边距右、外边距顶、最大高度、最大宽度、最小高度、最小宽度、内边距、内边距底、内边距左、内边距右、内边距顶、定位、CLASS、InnerHTML、OuterHTML、内容水平对齐方式、首行缩进、可视、显示层级、内联样式、禁用

方法: 追加内联样式(样式文本)、置内联样式(名称,值)、取内联样式值(名称)、取Style对象()、添加事件(事件名称, 回调函数)、删除事件(事件名称, 回调函数)、获取焦点()、清除焦点()、添加样式类(类名称)、移除样式类(类名称)、取样式类列表()、取样式类()、执行单击()、取属性值(属性名)、取属性节点(属性名)、取布局参数()、取渲染宽度()、取渲染高度()、取渲染顶边()、取渲染左边()、左侧对齐到(目标组件,偏移量)、右侧对齐到(目标组件,偏移量)、顶边对齐到(目标组件,偏移量)、底边对齐到(目标组件,偏移量)、右侧对齐到左(目标组件, 偏移量)、左侧对齐到右(目标组件, 偏移量)、底边对齐到顶(目标组件, 偏移量)、顶边对齐到底(目标组件, 偏移量)、有指定属性(属性名)、有属性()、内容可编辑()、包含CSS类(类名)、取命名空间()、取下个节点()、取下个元素()、取节点名称()、取节点类型()、取父节点()、取父元素()、取上个节点()、取上个元素()、销毁()、删除属性(属性名)、删除属性节点(属性名)、置属性值(属性名, 属性值)、置属性节点(属性节点)、取标签名()、移动(左边 顶边, 宽度, 高度)、取原生对象()、置被单击回调(回调函数)、置被双击回调(回调函数)、置鼠标被进入回调(回调函数)、置鼠标被移出回调(回调函数)、置鼠标被移动回调(回调函数)、置鼠标被按下回调(回调函数)、置鼠标被抬起回调(回调函数)、置鼠标滚轮被滚动回调(回调函数)、置键盘被按下回调(回调函数)、置按键被抬起回调(回调函数)、置按键被压下回调(回调函数)、置被失去焦点回调(回调函数)、置被获得焦点回调(回调函数)

事件: 被单击(源对象,事件源)、被双击(源对象,事件源)、鼠标被进入(源对象,事件源)、鼠标被移出(源对象,事件源)、鼠标被移动(源对象,事件源)、鼠标被按下(源对象,事件源)、鼠标被抬起(源对象,事件源)、鼠标滚轮被滚动(源对象,事件源)、键盘被按下(源对象,事件源)、按键被抬起(源对象,事件源)、按键被压下(源对象,事件源)、被失去焦点(源对象,事件源)、被获得焦点(源对象,事件源)

💡 完整成员列表及详细说明请参考:视图


常用操作速查

操作属性/方法示例
设置按钮图标图标返回顶部按钮1.图标 = "⬆"
设置按钮大小大小返回顶部按钮1.大小 = 48
设置形状形状返回顶部按钮1.形状 = "square"
设置背景颜色背景颜色返回顶部按钮1.背景颜色 = "#52c41a"
设置水平偏移(距右)偏移X返回顶部按钮1.偏移X = 32
设置垂直偏移(距下)偏移Y返回顶部按钮1.偏移Y = 32
设置显示阈值(滚动距离)显示阈值返回顶部按钮1.显示阈值 = 600
指定滚动监听容器置滚动容器(容器元素)返回顶部按钮1.置滚动容器(面板1)
手动返回顶部返回顶部()返回顶部按钮1.返回顶部()
显示按钮(添加到页面)显示(父容器)返回顶部按钮1.显示()
销毁组件销毁()返回顶部按钮1.销毁()

样式美化参考

返回顶部按钮的外观可通过以下属性进行自定义:

  • 按钮形状与大小形状 支持 "circle"(圆形,默认)和 "square"(方形);大小 控制宽高(像素),建议不小于 40px 以保证可点击性。
  • 图标与颜色图标 支持文本字符(如 "↑""⬆")或 emoji;背景颜色 设置按钮底色,建议使用品牌色或高亮色。
  • 位置与偏移:按钮固定于右下角(偏移X偏移Y 控制距右和距下的距离),不可更改位置(固定为右下角)。
  • 悬停效果:可通过继承的 置鼠标被进入回调置鼠标被移出回调 动态改变背景色或缩放,增强交互反馈。
  • 过渡动画:组件默认带有淡入淡出过渡,可通过 CSS 类自定义。

CSS 美化示例(在项目 CSS 文件中定义):

.my-back-top {
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    transition: transform 0.3s;
}
.my-back-top:hover {
    transform: scale(1.1);
}

在代码中应用样式类:返回顶部按钮1.添加样式类("my-back-top")


基础示例

创建一个简单的返回顶部按钮,默认右下角显示,滚动超过 400px 后出现。

变量 返回顶部按钮1 = 创建 返回顶部按钮()
返回顶部按钮1.图标 = "↑"
返回顶部按钮1.大小 = 44
返回顶部按钮1.形状 = "circle"
返回顶部按钮1.背景颜色 = "#1890ff"
返回顶部按钮1.文本颜色 = "#ffffff"
返回顶部按钮1.显示阈值 = 400
返回顶部按钮1.偏移X = 24
返回顶部按钮1.偏移Y = 24

' 添加单击回调(可在此记录事件)
返回顶部按钮1.置被单击回调((源对象) => {
    调试输出("用户点击了返回顶部按钮")
})

' 显示按钮
返回顶部按钮1.显示()

综合示例:在滚动容器内使用

本示例创建一个具有固定高度的滚动容器(垂直滚动框),让返回顶部按钮监听该容器内部的滚动事件,而非整个页面。

' ========== 创建滚动容器 ==========
变量 滚动容器 = 创建 垂直滚动框()
滚动容器.左边 = 50
滚动容器.顶边 = 30
滚动容器.宽度 = 400
滚动容器.高度 = 300
滚动容器.边框 = "1px solid #e8e8e8"
滚动容器.边框圆角 = "8px"
滚动容器.背景颜色 = "#fafafa"
滚动容器.内边距 = "8px"
添加组件(滚动容器)

' 向滚动容器添加大量内容以产生滚动
变量循环(i = 1, 50, 1)
    变量 项 = 创建 标签()
    项.文本 = "第 " + i + " 行内容"
    项.内边距 = "8px"
    项.边框底边 = "1px solid #f0f0f0"
    滚动容器.添加组件(项)
结束循环

' ========== 创建返回顶部按钮(监听该容器) ==========
变量 返回顶部按钮1 = 创建 返回顶部按钮()
返回顶部按钮1.图标 = "⬆"
返回顶部按钮1.大小 = 40
返回顶部按钮1.形状 = "circle"
返回顶部按钮1.背景颜色 = "#1890ff"
返回顶部按钮1.文本颜色 = "#ffffff"
返回顶部按钮1.显示阈值 = 200  ' 容器内滚动 200px 后显示
返回顶部按钮1.偏移X = 16
返回顶部按钮1.偏移Y = 16

' 指定滚动容器(注意:需传入原生 DOM 元素)
变量 容器元素 = 滚动容器.取原生对象()
返回顶部按钮1.置滚动容器(容器元素)

' 显示按钮(父容器可以指定为滚动容器的父级,以便按钮覆盖在容器之上)
' 这里直接添加到页面,但按钮位置是相对于视口的,会影响显示。
' 更合理的做法是将按钮添加到滚动容器的父容器,并设置合适的定位。
' 但组件本身是固定定位,所以添加到 body 即可,它会覆盖在容器上方。
返回顶部按钮1.显示()

' 添加状态提示
变量 状态标签 = 创建 标签()
状态标签.左边 = 50
状态标签.顶边 = 350
状态标签.文本 = "滚动容器内容已加载,滚动查看按钮效果"
状态标签.字体大小 = "14px"
状态标签.文本颜色 = "#999"
添加组件(状态标签)

属性详解

图标

  • 类型: 文本型
  • 说明: 设置或获取按钮内显示的图标字符,支持普通文本(如 "↑")、emoji(如 "⬆")或 HTML 字符串。默认 "↑"

背景颜色

  • 类型: 文本型
  • 说明: 设置或获取按钮的背景颜色,支持 CSS 颜色值。默认 "#1890ff"

大小

  • 类型: 数值型
  • 说明: 设置或获取按钮的宽度和高度(像素),即按钮为正方形。默认 40。建议不小于 40px 以保证触控区域足够大。

形状

  • 类型: 文本型
  • 说明: 设置或获取按钮的形状,可选值:
    • "circle":圆形(边框圆角 50%),默认
    • "square":方形(可配合 边框圆角 实现圆角矩形)

偏移X

  • 类型: 数值型
  • 说明: 设置或获取按钮距离屏幕右侧边缘的偏移量(像素)。默认 24

偏移Y

  • 类型: 数值型
  • 说明: 设置或获取按钮距离屏幕底部边缘的偏移量(像素)。默认 24

显示阈值

  • 类型: 数值型
  • 说明: 设置或获取滚动容器(或窗口)垂直滚动距离达到多少像素时显示按钮。当滚动距离小于此值时,按钮自动隐藏。默认 400

函数详解

置滚动容器(容器元素)

  • 功能: 指定要监听滚动事件的目标容器(默认为 window)。当容器内滚动距离达到 显示阈值 时,按钮自动显示。
  • 参数: 容器元素,可以是原生 DOM 元素(如通过 取原生对象() 获取)或选择器字符串。
  • 返回值: 无。
  • 示例: 返回顶部按钮1.置滚动容器(滚动框.取原生对象())

返回顶部()

  • 功能: 手动触发平滑滚动到顶部(针对当前监听的滚动容器)。效果等同于点击按钮。
  • 返回值: 无。
  • 示例: 返回顶部按钮1.返回顶部()

显示(父容器)

  • 功能: 将按钮添加到页面并启用滚动监听。若不调用此方法,按钮不会显示。
  • 参数: 父容器(可选),可以是视图组件或原生 DOM 元素,默认为 body
  • 返回值: 无。
  • 示例: 返回顶部按钮1.显示(面板1) 将按钮添加到面板中(但按钮仍为固定定位,相对视口定位)。

销毁()

  • 功能: 销毁组件,从 DOM 中移除按钮元素,取消滚动监听,释放资源。调用后组件不可再用。
  • 返回值: 无。
  • 示例: 返回顶部按钮1.销毁()

事件说明

返回顶部按钮本身未定义特有事件,但继承自 视图 的所有事件均可使用,特别是 置被单击回调 是最常用的交互方式。


⚠️ 注意事项

  1. 固定定位:按钮使用 position: fixed,相对视口定位,即使页面滚动,按钮仍固定在屏幕右下角(除非指定了父容器但定位方式不变)。
  2. 父容器影响:调用 显示(父容器) 时,父容器应具有足够大的尺寸或为 body,否则按钮可能被裁剪或定位异常。通常建议默认添加到 body
  3. 滚动容器要求:若使用 置滚动容器 指定了自定义容器,该容器需具有固定高度且内容溢出可滚动,否则滚动事件无法正确触发。
  4. 显示阈值与滚动方向:阈值指垂直滚动的像素值,与滚动方向无关(向下滚动到一定距离后显示,向上滚回到阈值以上则隐藏)。
  5. 销毁与内存泄漏:在页面切换或组件不再需要时,应调用 销毁() 移除事件监听,避免内存泄漏。
  6. 与悬浮按钮的区别:返回顶部按钮专用于回到顶部,位置固定于右下角;悬浮按钮更通用,位置可四角选择,图标和功能更灵活。
  7. 样式覆盖:默认样式可能比较简单,可通过 CSS 类或内联样式自定义,注意保持可点击性。
  8. 平滑滚动:点击后使用 scrollTobehavior: 'smooth' 实现平滑滚动,所有现代浏览器均支持。

相关文档

  • 文档框架基础类_视图 —— 视图类提供的所有通用属性和方法
  • 文档其它通用类组件_悬浮按钮 —— 功能类似的固定定位按钮
  • 文档轻语言网站:轻语言语法速查 —— 拉姆达表达式、事件处理等
  • 文档综合演示:长页面滚动导航 —— 实际应用示例