css 不错的按钮动画

效果图

wxml

bash 复制代码
<view class="{{status?'active':''}}">
  <view class="up-top btn">
    <text>向上</text>
  </view>

  <view class="up-left btn">
    <text>向左</text>
  </view>

  <view class="up-center btn">
    <text>居中</text>
  </view>
</view>
<button bind:tap="hover">开始</button>

wxss

css 复制代码
.btn{
  margin:50rpx auto;
  width: 350rpx;
  height: var(--h);
  text-align: center;
  font-size: 32rpx;
  line-height: var(--h);

  --h:80rpx;
  --b:#0066FF;
}
.active{
  --p:100%;
  --s:.3s;
  --c:65%;
  color: #fff;
}
.up-top{
  background:conic-gradient(var(--b) 0 0) calc(200% - var(--p, 0%)) 100% / 200% var(--p, 4rpx) no-repeat;
  transition:.3s var(--s, 0s), background-position .3s calc(.3s - var(--s, 0s));
}
.up-left{
  background:conic-gradient(var(--b) 0 0) var(--p, 0%) / var(--p, 0%) no-repeat;
  transition:.3s, background-position 0s;
}
.up-center{
  background:conic-gradient(from -135deg at 100% 50%, var(--b) 90deg, transparent 0) 0 var(--p, 0%),
  conic-gradient(from -135deg at var(--h) 50%, transparent 90deg, var(--b) 0) 100% var(--p, 0%);
  background-size: var(--c, 0) 200%;
  background-repeat: no-repeat;
  transition:.3s ease-in, background-position 0s;
}

js

css 复制代码
Page({
  data: {
    status:false
  },
  hover(){
    var that = this
    that.setData({ status:true })
    setTimeout(() => { that.setData({ status:false }) },900)
  },
})

遇到问题可以看我主页加我Q,很少看博客,对你有帮助别忘记点赞收藏。

相关推荐
m0_738120724 分钟前
应急响应——知攻善防Web-3靶机详细教程
服务器·前端·网络·安全·web安全·php
程序员爱钓鱼7 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
PineappleCoder7 小时前
工程化必备!SVG 雪碧图的最佳实践:ID 引用 + 缓存友好,无需手动算坐标
前端·性能优化
JIngJaneIL8 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
敲敲了个代码8 小时前
隐式类型转换:哈基米 == 猫 ? true :false
开发语言·前端·javascript·学习·面试·web
澄江静如练_8 小时前
列表渲染(v-for)
前端·javascript·vue.js
JustHappy8 小时前
「chrome extensions🛠️」我写了一个超级简单的浏览器插件Vue开发模板
前端·javascript·github
Loo国昌8 小时前
Vue 3 前端工程化:架构、核心原理与生产实践
前端·vue.js·架构
sg_knight9 小时前
拥抱未来:ECMAScript Modules (ESM) 深度解析
开发语言·前端·javascript·vue·ecmascript·web·esm