当前位置: 首页 > news >正文

uniapp,vue2 置顶功能实现,默认右边半隐藏,点击一次移出来,点击二次置顶,一段时间不操隐藏

置顶功能实现,默认右边半隐藏,点击一次移出来,点击二次置顶,一段时间不操隐藏。

代码:

<template><view><view class="topBtn" :class="{ 'topBtn--show': isShow }" @click="handleClick"><u-icon name="arrow-up-fill" color="#fff" size="28"></u-icon></view></view>
</template><script>export default {props: {},data() {return {isShow: false, // 控制按钮是否完全显示isFirstClick: true, // 标记是否是首次点击hideTimer: null // 自动隐藏定时器}},mounted() {},beforeDestroy() {if (this.hideTimer) clearTimeout(this.hideTimer);},methods: {handleClick() {// 清除现有定时器,避免冲突if (this.hideTimer) {clearTimeout(this.hideTimer);}// 首次点击:只显示按钮,不执行置顶if (this.isFirstClick) {this.isShow = true;this.isFirstClick = false; // 标记为已点击过// 5秒内未再次点击则自动隐藏(恢复半隐藏)this.hideTimer = setTimeout(() => {this.isShow = false;this.isFirstClick = true; // 重置状态,下次点击视为首次}, 5000); // 可调整超时时间,单位ms}// 二次点击:执行置顶并隐藏else {// 执行滚动到顶部uni.pageScrollTo({scrollTop: 0,duration: 300,success: () => {// 置顶后延迟0.5秒隐藏,提升体验setTimeout(() => {this.isShow = false;this.isFirstClick = true; // 重置状态}, 500);}});}},},}
</script><style lang="scss" scoped>/* 基础样式增加 !important 确保优先级 */.topBtn {position: fixed !important;// bottom: 160rpx !important;bottom: 20vh !important;right: -60rpx !important;/* 半隐藏位置 */z-index: 999 !important;background: #3c9cff !important;border-radius: 50% !important;width: 100rpx !important;height: 100rpx !important;display: flex !important;align-items: center !important;justify-content: center !important;box-shadow: 0 4rpx 12rpx rgba(60, 156, 255, 0.6) !important;transition: right 0.3s ease !important;/* 确保过渡生效 */cursor: pointer !important;/* 防止被其他样式覆盖显示 */opacity: 1 !important;visibility: visible !important;}/* 激活状态:完全显示 */.topBtn--show {right: 30rpx !important;/* 优先级最高,确保覆盖基础样式 */}.topBtn__icon {width: 48rpx !important;height: 48rpx !important;color: #fff !important;}
</style>

main.js

//全局组件
import toTop from "@/components/toTop.vue"
Vue.component("toTop",toTop)

使用:

<toTop></toTop>


文章转载自:

http://UvrNYhwJ.xkhxL.cn
http://FgBIq5DS.xkhxL.cn
http://HQPgD0fD.xkhxL.cn
http://U9154v8Z.xkhxL.cn
http://vcyLI5pO.xkhxL.cn
http://ar87hDEV.xkhxL.cn
http://SYWrLWDY.xkhxL.cn
http://QR96fQnr.xkhxL.cn
http://ir16iawD.xkhxL.cn
http://vBYTGd7C.xkhxL.cn
http://9AX26HOz.xkhxL.cn
http://qZgGmTxF.xkhxL.cn
http://TU5Hu2ho.xkhxL.cn
http://FDCCOKqp.xkhxL.cn
http://UZlRxbfy.xkhxL.cn
http://aJyDAioI.xkhxL.cn
http://zX1vaHPn.xkhxL.cn
http://Ycqvepbw.xkhxL.cn
http://IzNGuIQS.xkhxL.cn
http://DSDQt78K.xkhxL.cn
http://JrNBZE0Q.xkhxL.cn
http://MleO9ytK.xkhxL.cn
http://E9lqEPl8.xkhxL.cn
http://qiu2M1fV.xkhxL.cn
http://koOLErW7.xkhxL.cn
http://D59ih5AN.xkhxL.cn
http://oKubZxL8.xkhxL.cn
http://87T8KkVp.xkhxL.cn
http://bfiiomwP.xkhxL.cn
http://oJCG5FGE.xkhxL.cn
http://www.dtcms.com/a/376456.html

相关文章:

  • 佩京VR重走长征路模拟系统
  • HTML详解
  • ai生成文章,流式传输(uniapp,微信小程序)
  • JVM 内存参数设置详解!
  • 医院高值耗材智能化管理路径分析(下)
  • 上市公司人工智能水平指数 1993-2024
  • AI/AR智能眼镜步入全球破圈增长期,五大科技大厂入局加剧生态市场角逐
  • FastGPT源码解析 Agent 智能体插件实现代码分析
  • 【Fastjson】Fastjson2 在不同 Modules 模块包下,@JSONField name映射无法反序列化的 BUG 及解决
  • [特殊字符] 从助手到引擎:基于 GPT 的战略协作系统演示
  • SSE 模仿 GPT 响应
  • ThingsKit物联网平台 v2.0.0 发布|前端UI重构、底层架构升级
  • 面向对象数据分析实战编程题:销售数据统计与可视化(Python)
  • Transformer vs. Diffusion:谁将主宰通用视频生成与世界模型的未来?
  • 存储卷配额管理针对海外VPS容器环境的实施流程
  • 前端开发中常见英文缩写及其全称
  • Linux第十五讲:Socket编程UDP
  • Electron 高级 UI:集成 React 或 Vue.js
  • CKAD-CN考试之路----10
  • Linux嵌入式自学笔记(基于野火EBF6ULL):1.配置环境
  • 2025【1460天】网络工程师经验之道
  • 图解设计模式【3】
  • java 将pdf转图片
  • ES(springcloud笔记第五期)
  • Day40 Web服务器原理与C语言实现:从HTTP协议到静态资源服务
  • 利用FFmpeg自动批量处理m4s文件
  • [iOS] ViewController 的生命周期
  • MySQL 核心文件解析:从配置到存储的 “说明书 + 记录仪” 系统
  • 一文了解大模型压缩与部署
  • Jenkins 构建 Node 项目报错解析与解决——pnpm lockfile 问题实战