DocHome For CFDesktop
How to develop widget
正在初始化搜索引擎
CFDesktop
prompt.md — Doxygen comment generation specification (English)
HandBook
Api
Ci
Design stage
Development
Optimize
Release rule
Todo
DocHome For CFDesktop
CFDesktop
prompt.md — Doxygen comment generation specification (English)
HandBook
HandBook
Api
Api
System
System
OS 助手
Cpu
Cpu
CPU 基础信息 API
CPU 扩展信息 API
CPU 性能信息 API
CPU 模块概述
Memory
Memory
Memory 信息 API
Base
Base
expected - 错误处理
macros - 宏定义系统
CallOnceInit - 懒加载初始化
基础工具库
scope_guard - 作用域守卫
span - 容器视图
weak_ptr - 非拥有弱引用指针
weak_ptr_factory - 弱引用工厂
Linux
Linux
proc_parser - Linux 文件解析工具
Macro
Macro
plain_property - 简单属性宏
system_judge - 系统判断宏
Examples
Examples
CPU 信息查询示例
Implementation
Implementation
Linux
Linux
Linux 平台实现细节
Memory
Memory
Linux 平台实现细节
Windows
Windows
Windows 平台实现细节
Memory
Memory
Windows 平台内存模块实现
Ui
Ui
How to develop widget
Application
Application
Application - 应用基础类
MaterialApplication - Material 应用
Architecture
Architecture
Layer 1 math utility
Layer 1 math utility
从零开始——为什么我们决定自己造轮子
HCT 色彩空间实战——Material 动态主题的数学基础
几何与设备无关——跨 DPI 适配的完整方案
Layer 2 theme engine
Layer 2 theme engine
主题系统架构设计——从单例到工厂的完整方案
Token 系统设计——字符串字面量的编译时魔法
颜色方案实现——从种子颜色到完整主题
字体、形状与动效——完整的设计规范系统
Layer 3 animation engine
Layer 3 animation engine
动画引擎架构——统一调度的生命线管理
时间与弹簧——两种动画范式的完整实现
工厂与策略——动画创建的灵活组合模式
Layer 4 material behavior
Layer 4 material behavior
状态机设计——Material 交互状态的核心管理器
涟漪与阴影——Material 视觉反馈的完整实现
焦点指示器——无障碍访问的视觉实现
Layer 5 widget adapter
Layer 5 widget adapter
适配器模式——Material 控件的"薄包装"设计
Button 控件深度解析——七步绘制流程的完整实现
绘制管道优化——从单一控件到批量渲染的性能考量
Base
Base
color - HCT 色彩空间
color_helper - 颜色助手
device_pixel - 设备像素 (DPI 缩放)
easing - 缓动曲线
geometry_helper - 几何助手
math_helper - 数学工具
Components
Components
ICFAbstractAnimation - 动画基类
ICFAnimationManagerFactory - 动画工厂管理器
ICFAnimationGroup - 动画组
ICFSpringAnimation - 弹簧动画
ICFTimingAnimation - 时间动画
Core
Core
ICFColorScheme - 颜色方案接口
IFontType - 字体样式接口
IMotionSpec - 动画规格接口
IRadiusScale - 圆角规范接口
ICFTheme - 主题接口
ThemeFactory - 主题工厂
ThemeManager - 主题管理器
Token
Token
Material scheme
Material scheme
Material Token 字面量
Motion
Motion
Motion Token 字面量
Radius scale
Radius scale
Radius Scale Token 字面量
Typography
Typography
Typography Token 字面量
Material
Material
MaterialTypography - Material 字体系统
MaterialMotionScheme - Material 动画系统
MaterialRadiusScale - Material 圆角系统
MaterialColorScheme - Material Design 3 颜色方案
MaterialTheme - Material Design 3 主题
MaterialFactory - Material 主题工厂
material_factory.hpp - Material 工厂函数
Animation
Animation
CFMaterialAnimationFactory - Material 动画工厂
AnimationStrategy - Material 动画策略
CFMaterialFadeAnimation - Material 淡入淡出动画
CFMaterialScaleAnimation - Material 缩放动画
CFMaterialSlideAnimation - Material 滑动动画
Base
Base
MdElevationController - Material 阴影控制器
MdFocusIndicator - Material 焦点环
PainterLayer - 绘图层管理器
RippleHelper - Material 涟漪效果助手
Widget
Widget
Button - Material 按钮
StateMachine - Material 状态机
Api
Api
Classes
Examples
Files
Modules
Namespaces
Pages
Classes
Classes
cf::COMHelper
cf::ScopeGuard
cf::SimpleSingleton
cf::Singleton
cf::WeakPtr
cf::WeakPtrFactory
cf::bad_expected_access
cf::bad_expected_access< void >
cf::expected
cf::expected< void, E >
cf::internal::WeakReferenceFlag
cf::span
cf::ui::base::CFColor
cf::ui::components::ICFAbstractAnimation
cf::ui::components::ICFAnimationGroup
cf::ui::components::ICFAnimationManagerFactory
cf::ui::components::ICFSpringAnimation
cf::ui::components::ICFTimingAnimation
cf::ui::components::material::AnimationStrategy
cf::ui::components::material::CFMaterialAnimationFactory
cf::ui::components::material::CFMaterialFadeAnimation
cf::ui::components::material::CFMaterialPropertyAnimation
cf::ui::components::material::CFMaterialScaleAnimation
cf::ui::components::material::CFMaterialSlideAnimation
cf::ui::components::material::DefaultAnimationStrategy
cf::ui::core::EmbeddedTokenRegistry
cf::ui::core::MaterialColorScheme
cf::ui::core::MaterialFactory
cf::ui::core::MaterialMotionScheme
cf::ui::core::MaterialRadiusScale
cf::ui::core::MaterialTheme
cf::ui::core::MaterialTypography
cf::ui::core::StaticToken
cf::ui::core::ThemeFactory
cf::ui::core::ThemeManager
cf::ui::core::TokenRegistry
cf::ui::example::ButtonExampleWindow
cf::ui::example::CheckBoxExampleWindow
cf::ui::example::GroupBoxExampleWindow
cf::ui::example::LabelExampleWindow
cf::ui::example::RadioButtonExampleWindow
cf::ui::example::TextAreaExampleWindow
cf::ui::example::TextFieldExampleWindow
cf::ui::gallery::ColorCardWidget
cf::ui::gallery::ColorSchemePage
cf::ui::gallery::FontCardWidget
cf::ui::gallery::MaterialColorSchemeMainWindow
cf::ui::gallery::MaterialGalleryMainWindow
cf::ui::gallery::MaterialMotionSpecMainWindow
cf::ui::gallery::MaterialRadiusScaleMainWindow
cf::ui::gallery::MaterialTypographyMainWindow
cf::ui::gallery::MotionCardWidget
cf::ui::gallery::MotionPreviewWidget
cf::ui::gallery::MotionSpecPage
cf::ui::gallery::RadiusPreviewWidget
cf::ui::gallery::RadiusScalePage
cf::ui::gallery::ThemePageWidget
cf::ui::gallery::ThemeSidebar
cf::ui::gallery::ThemeSwitch
cf::ui::gallery::ToastWidget
cf::ui::gallery::TypographyPage
cf::ui::widget::application_support::Application
cf::ui::widget::material::Button
cf::ui::widget::material::CheckBox
cf::ui::widget::material::GroupBox
cf::ui::widget::material::Label
cf::ui::widget::material::MaterialApplication
cf::ui::widget::material::RadioButton
cf::ui::widget::material::TextArea
cf::ui::widget::material::TextField
cf::ui::widget::material::base::MdElevationController
cf::ui::widget::material::base::MdFocusIndicator
cf::ui::widget::material::base::PainterLayer
cf::ui::widget::material::base::RippleHelper
cf::ui::widget::material::base::StateMachine
cf::unexpected
_PROCESSOR_POWER_INFORMATION
cf::CPUBonusInfoHost
cf::CPUBonusInfoView
cf::CPUInfoHost
cf::CPUInfoView
cf::CPUProfileInfo
cf::CachedMemory
cf::CallOnceInit
cf::DimmInfo
cf::MemoryInfo
cf::PhysicalMemory
cf::ProcessMemory
cf::SwapMemory
cf::ui::base::Easing::SpringPreset
cf::ui::base::device::CanvasUnitHelper
cf::ui::components::material::AnimationDescriptor
cf::ui::components::material::token_literals::AnimationTokenMapping
cf::ui::core::BodyFonts
cf::ui::core::DisplayFonts
cf::ui::core::ErrorColors
cf::ui::core::HeadlineFonts
cf::ui::core::ICFColorScheme
cf::ui::core::ICFTheme
cf::ui::core::IFontType
cf::ui::core::IMotionSpec
cf::ui::core::IRadiusScale
cf::ui::core::LabelFonts
cf::ui::core::MaterialMotionScheme::MotionPresetsGroup
cf::ui::core::MotionPresets
cf::ui::core::MotionSpec
cf::ui::core::PrimaryColors
cf::ui::core::SecondaryColors
cf::ui::core::SurfaceColors
cf::ui::core::TertiaryColors
cf::ui::core::TitleFonts
cf::ui::core::TokenError
cf::ui::core::UtilityColors
cf::ui::core::detail::TokenSlot
cf::ui::core::material::MaterialSchemeError
cf::ui::core::material::detail::DarkColors
cf::ui::core::material::detail::LightColors
cf::ui::gallery::ColorSchemePage::ColorCardInfo
cf::ui::gallery::MaterialColorSchemeMainWindow::ColorCardInfo
cf::ui::gallery::MaterialMotionSpecMainWindow::MotionPresetInfo
cf::ui::gallery::MaterialTypographyMainWindow::FontCardInfo
cf::ui::gallery::MotionSpecPage::MotionPresetInfo
cf::ui::gallery::ThemeSidebar::TabItem
cf::ui::gallery::TypographyPage::FontCardInfo
cf::ui::widget::material::base::MdElevationController::ShadowParams
cf::ui::widget::material::base::MdRipple
cf::unexpect_t
cf::expected::Storage
cf::expected< void, E >::Storage
Files
Files
example/ui/widget/material/button/ButtonExampleWindow.cpp
example/ui/widget/material/button/ButtonExampleWindow.h
example/ui/widget/material/checkbox/CheckBoxExampleWindow.cpp
example/ui/widget/material/checkbox/CheckBoxExampleWindow.h
example/gui/theme/ColorSchemePage.cpp
example/gui/theme/ColorSchemePage.h
example/ui/widget/material/groupbox/GroupBoxExampleWindow.cpp
example/ui/widget/material/groupbox/GroupBoxExampleWindow.h
example/ui/widget/material/label/LabelExampleWindow.cpp
example/ui/widget/material/label/LabelExampleWindow.h
example/gui/material/material_color_scheme/MaterialColorSchemeMainWindow.cpp
example/gui/material/material_color_scheme/MaterialColorSchemeMainWindow.h
example/gui/theme/MaterialGalleryMainWindow.cpp
example/gui/theme/MaterialGalleryMainWindow.h
example/gui/material/material_motion_spec/MaterialMotionSpecMainWindow.cpp
example/gui/material/material_motion_spec/MaterialMotionSpecMainWindow.h
example/gui/material/material_radius_scale/MaterialRadiusScaleMainWindow.cpp
example/gui/material/material_radius_scale/MaterialRadiusScaleMainWindow.h
example/gui/material/material_typography/MaterialTypographyMainWindow.cpp
example/gui/material/material_typography/MaterialTypographyMainWindow.h
example/gui/theme/MotionSpecPage.cpp
example/gui/theme/MotionSpecPage.h
README.md
example/ui/widget/material/radiobutton/RadioButtonExampleWindow.cpp
example/ui/widget/material/radiobutton/RadioButtonExampleWindow.h
example/gui/theme/RadiusScalePage.cpp
example/gui/theme/RadiusScalePage.h
example/ui/widget/material/textarea/TextAreaExampleWindow.cpp
example/ui/widget/material/textarea/TextAreaExampleWindow.h
example/ui/widget/material/textfield/TextFieldExampleWindow.cpp
example/ui/widget/material/textfield/TextFieldExampleWindow.h
example/gui/theme/ThemePageWidget.cpp
example/gui/theme/ThemePageWidget.h
example/gui/theme/ThemeSidebar.cpp
example/gui/theme/ThemeSidebar.h
example/gui/theme/ToastWidget.cpp
example/gui/theme/ToastWidget.h
example/gui/theme/TypographyPage.cpp
example/gui/theme/TypographyPage.h
ui/components/animation.cpp
ui/components/animation.h
ui/components/animation_factory_manager.cpp
ui/components/animation_factory_manager.h
ui/components/animation_group.h
ui/components/material/token/animation_token_literals.h
ui/components/material/token/animation_token_mapping.h
ui/widget/application_support/application.cpp
ui/widget/application_support/application.h
ui/widget/material/widget/button/button.cpp
ui/widget/material/widget/button/button.h
base/system/memory/private/linux_impl/cached_memory.cpp
base/system/memory/private/linux_impl/cached_memory.h
base/system/cpu/cfcpu.cpp
base/include/system/cpu/cfcpu.h
base/system/cpu/cfcpu_bonus.cpp
base/include/system/cpu/cfcpu_bonus.h
base/system/cpu/cfcpu_profile.cpp
base/include/system/cpu/cfcpu_profile.h
ui/components/material/cfmaterial_animation_factory.cpp
ui/components/material/cfmaterial_animation_factory.h
ui/components/material/cfmaterial_animation_strategy.cpp
ui/components/material/cfmaterial_animation_strategy.h
ui/components/material/cfmaterial_fade_animation.cpp
ui/components/material/cfmaterial_fade_animation.h
ui/core/material/cfmaterial_fonttype.cpp
ui/core/material/cfmaterial_fonttype.h
ui/core/material/cfmaterial_motion.cpp
ui/core/material/cfmaterial_motion.h
ui/core/token/motion/cfmaterial_motion_token_literals.h
ui/components/material/cfmaterial_property_animation.cpp
ui/components/material/cfmaterial_property_animation.h
ui/core/material/cfmaterial_radius_scale.cpp
ui/core/material/cfmaterial_radius_scale.h
ui/core/token/radius_scale/cfmaterial_radius_scale_literals.h
ui/components/material/cfmaterial_scale_animation.cpp
ui/components/material/cfmaterial_scale_animation.h
ui/core/material/cfmaterial_scheme.cpp
ui/core/material/cfmaterial_scheme.h
ui/components/material/cfmaterial_slide_animation.cpp
ui/components/material/cfmaterial_slide_animation.h
ui/core/material/cfmaterial_theme.cpp
ui/core/material/cfmaterial_theme.h
ui/core/token/material_scheme/cfmaterial_token_literals.h
ui/core/token/typography/cfmaterial_typography_token_literals.h
ui/widget/material/widget/checkbox/checkbox.cpp
ui/widget/material/widget/checkbox/checkbox.h
base/include/base/windows/co_helper.hpp
ui/base/color.cpp
ui/base/color.h
ui/base/color_helper.cpp
ui/base/color_helper.h
ui/core/color_scheme.h
base/include/base/windows/common.h
base/include/base/hash/constexpr_fnv1a.hpp
base/system/cpu/private/cpu_host.h
ui/base/device_pixel.cpp
ui/base/device_pixel.h
base/system/memory/private/linux_impl
ui/core/material
base/system/memory
example/gui/material/material_motion_spec
base/include/base/weak_ptr/private
base/system/memory/private
base/utils
ui
ui/widget/material/widget/textarea
example/ui/widget/material/textarea
ui/widget/material/application
base/include/base/macro
base/utils/linux
ui/widget
example/ui
ui/core/token/material_scheme
ui/widget/material/widget/textfield
example/gui/material/material_radius_scale
ui/widget/material/widget/groupbox
ui/widget/material/widget/label
ui/components
base/system/cpu/private/win_impl
example/gui/material/material_color_scheme
base/include/base/scope_guard
ui/widget/material/widget
ui/core
example/gui/material/material_typography
base/include/base/span
example/ui/widget/material/radiobutton
ui/base
base/include/base/linux
base/include/base/helpers
example/ui/widget/material/button
base/system/cpu/private
base/system/memory/private/win_impl
base/system
example/ui/widget/material
example/gui/material
base/include
ui/core/token/radius_scale
example/ui/widget/material/textfield
base/include/base/singleton
ui/widget/material/base
base/system/cpu/private/linux_impl
example/ui/widget/material/checkbox
example/base/system
ui/core/token/theme_name
base/system/cpu
base/include/system/memory
ui/core/token/motion
ui/components/material/token
ui/widget/material/widget/button
ui/core/token
ui/widget/application_support
example/gui/theme
ui/core/token/typography
example
base/include/system
ui/widget/material
example/gui
base/include/base/weak_ptr
base/include/base/hash
base/include/base
base
example/ui/widget/material/label
ui/components/material
example/ui/widget
example/ui/widget/material/groupbox
ui/widget/material/widget/checkbox
ui/widget/material/widget/radiobutton
base/include/base/windows
base/include/system/cpu
example/base
base/include/base/expected
ui/base/easing.cpp
ui/base/easing.h
ui/widget/material/base/elevation_controller.cpp
ui/widget/material/base/elevation_controller.h
example/base/system/example_cpu_info.cpp
example/base/system/example_memory_info.cpp
base/include/base/expected/expected.hpp
ui/export.h
ui/widget/material/base/focus_ring.cpp
ui/widget/material/base/focus_ring.h
ui/core/font_type.h
ui/base/geometry_helper.cpp
ui/base/geometry_helper.h
ui/widget/material/widget/groupbox/groupbox.cpp
ui/widget/material/widget/groupbox/groupbox.h
example/gui/material/material_color_scheme/main.cpp
example/gui/material/material_motion_spec/main.cpp
example/gui/material/material_radius_scale/main.cpp
example/gui/material/material_typography/main.cpp
example/gui/theme/main.cpp
base/include/system/memory/memory_info.h
ui/widget/material/widget/label/label.cpp
ui/widget/material/widget/label/label.h
base/system/cpu/private/linux_impl/cpu_bonus.cpp
base/system/cpu/private/linux_impl/cpu_bonus.h
base/system/cpu/private/linux_impl/cpu_features.cpp
base/system/cpu/private/linux_impl/cpu_features.h
base/system/cpu/private/linux_impl/cpu_info.cpp
base/system/cpu/private/linux_impl/cpu_info.h
base/system/cpu/private/linux_impl/cpu_profile.cpp
base/system/cpu/private/linux_impl/cpu_profile.h
base/system/memory/private/linux_impl/dimm_info.cpp
base/system/memory/private/linux_impl/dimm_info.h
base/system/memory/private/linux_impl/physical_memory.cpp
base/system/memory/private/linux_impl/physical_memory.h
base/system/memory/private/linux_impl/process_memory.cpp
base/system/memory/private/linux_impl/process_memory.h
base/system/memory/private/linux_impl/swap_memory.cpp
base/system/memory/private/linux_impl/swap_memory.h
base/include/base/macros.h
ui/widget/material/application/material_application.cpp
ui/widget/material/application/material_application.h
ui/core/material/material_factory.cpp
ui/core/material/material_factory.hpp
ui/core/material/material_factory_class.h
ui/core/token/theme_name/material_theme_name.h
ui/base/math_helper.cpp
ui/base/math_helper.h
base/system/memory/memory_info.cpp
ui/core/motion_spec.h
base/include/base/helpers/once_init.hpp
base/system/os_helper.h
ui/widget/material/base/painter_layer.cpp
ui/widget/material/base/painter_layer.h
base/include/base/macro/plain_property.h
base/system/memory/private/linux_impl/memory_info.cpp
base/system/memory/private/win_impl/memory_info.cpp
base/utils/linux/proc_parser.cpp
base/include/base/linux/proc_parser.h
ui/widget/material/widget/radiobutton/radiobutton.cpp
ui/widget/material/widget/radiobutton/radiobutton.h
ui/core/radius_scale.h
ui/widget/material/base/ripple_helper.cpp
ui/widget/material/base/ripple_helper.h
base/include/base/scope_guard/scope_guard.hpp
base/include/base/singleton/simple_singleton.hpp
base/include/base/singleton/singleton.hpp
base/include/base/span/span.h
ui/components/spring_animation.h
ui/widget/material/base/state_machine.cpp
ui/widget/material/base/state_machine.h
base/system/memory/private/linux_impl/memory_info.h
base/system/memory/private/win_impl/memory_info.h
base/include/base/macro/system_judge.h
ui/widget/material/widget/textarea/textarea.cpp
ui/widget/material/widget/textarea/textarea.h
ui/widget/material/widget/textfield/textfield.cpp
ui/widget/material/widget/textfield/textfield.h
ui/core/theme.h
ui/core/theme_factory.h
ui/core/theme_manager.cpp
ui/core/theme_manager.h
ui/components/timing_animation.cpp
ui/components/timing_animation.h
ui/core/token.hpp
example/ui/widget/material/button/main.cpp
example/ui/widget/material/checkbox/main.cpp
example/ui/widget/material/groupbox/main.cpp
example/ui/widget/material/label/main.cpp
example/ui/widget/material/radiobutton/main.cpp
example/ui/widget/material/textarea/main.cpp
example/ui/widget/material/textfield/main.cpp
base/include/base/weak_ptr/weak_ptr.h
base/include/base/weak_ptr/weak_ptr_factory.h
base/include/base/weak_ptr/private/weak_ptr_internals.h
base/system/cpu/private/win_impl/cpu_bonus.cpp
base/system/cpu/private/win_impl/cpu_bonus.h
base/system/cpu/private/win_impl/cpu_features.cpp
base/system/cpu/private/win_impl/cpu_features.h
base/system/cpu/private/win_impl/cpu_info.cpp
base/system/cpu/private/win_impl/cpu_info.h
base/system/cpu/private/win_impl/cpu_profile.cpp
base/system/cpu/private/win_impl/cpu_profile.h
base/system/memory/private/win_impl/dimm_info.cpp
base/system/memory/private/win_impl/dimm_info.h
base/system/memory/private/win_impl/physical_memory.cpp
base/system/memory/private/win_impl/physical_memory.h
base/system/memory/private/win_impl/process_memory.cpp
base/system/memory/private/win_impl/process_memory.h
base/system/memory/private/win_impl/swap_memory.cpp
base/system/memory/private/win_impl/swap_memory.h
Namespaces
Namespaces
cf
cf
cf::hash
cf::internal
cf::linux_impl
cf::linux_impl
cf::linux_impl
cf::linux_impl
cf::linux_impl
cf::linux_impl
cf::ui
cf::ui::base
cf::ui::base::Easing
cf::ui::base
cf::ui::base
cf::ui::base::device
cf::ui::base::geometry
cf::ui::base::geometry
cf::ui::components
cf::ui::components::core
cf::ui::components::material
cf::ui::components::material::token_literals
cf::ui::core
cf::ui::core::detail
cf::ui::core::lineHeightTokens
cf::ui::core::material
cf::ui::core::material::detail
cf::ui::core::token
cf::ui::core::token::literals
cf::ui::core::tokens
cf::ui::example
cf::ui::gallery
cf::ui::math
cf::ui::widget
cf::ui::widget::application_support
cf::ui::widget::material
cf::ui::widget::material
cf::ui::widget::material
cf::ui::widget::material
cf::ui::widget::material
cf::ui::widget::material
cf::ui::widget::material
cf::ui::widget::material
cf::ui::widget::material::base
cf::ui::widget::material::base
cf::win_impl
cf::win_impl
std
Pages
Pages
CFDesktop Base
Ci
Ci
CI 构建入口设置指南
Docker 构建环境设置指南
CI 工具链设置指南
Design stage
Design stage
Phase 0: 工程骨架搭建详细设计文档
Phase 1: 硬件探针与能力分级详细设计文档
Phase 2: Base 库核心详细设计文档
Phase 3: 输入抽象层详细设计文档
Phase 6: 多平台模拟器详细设计文档
Phase 8: 测试体系详细设计文档
Development
Development
01. 前置要求
Quick Start Guide
Build System Documentation
开发工具配置
Docker 构建指南
Git Hooks 使用说明
常见问题排查
Optimize
Optimize
CFDesktop 性能优化和架构优化计划
Release rule
Release rule
Git Hooks 使用指南
Todo
Todo
Phase 0: 工程骨架搭建 TODO
Phase 1: 硬件探针与能力分级 TODO
Phase 2: Base 库核心 TODO
Phase 3: 输入抽象层 TODO
Phase 6: 多平台模拟器 TODO
Phase 8: 测试体系 TODO
UI Material Framework TODO
Done
Done
Phase 0: 工程骨架搭建 - 参考文档
Phase 1: 硬件探针与能力分级 - 参考文档
Base库核心参考文档
输入抽象层参考文档
04 - Multi-Platform Simulator Reference
05 - Testing System Reference
99 - UI Material Framework Reference
CFDesktop 项目状态报告
CFDesktop
HandBook
Ui
How to develop widget
回到页面顶部