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,很少看博客,对你有帮助别忘记点赞收藏。

相关推荐
打小就很皮...1 小时前
Tesseract.js OCR 中文识别
前端·react.js·ocr
wuhen_n1 小时前
JavaScript内存管理与执行上下文
前端·javascript
Hi_kenyon2 小时前
理解vue中的ref
前端·javascript·vue.js
落霞的思绪3 小时前
配置React和React-dom为CDN引入
前端·react.js·前端框架
Hacker_Z&Q3 小时前
CSS 笔记2 (属性)
前端·css·笔记
Anastasiozzzz3 小时前
LeetCode Hot100 295. 数据流的中位数 MedianFinder
java·服务器·前端
Exquisite.4 小时前
Nginx
服务器·前端·nginx
打小就很皮...4 小时前
dnd-kit 实现表格拖拽排序
前端·react.js·表格拖拽·dnd-kit
Ulyanov4 小时前
从静态到沉浸:打造惊艳的Web技术发展历程3D时间轴
前端·javascript·html5·gui开发
打小就很皮...4 小时前
React 19 + Vite 6 + SWC 构建优化实践
前端·react.js·vite·swc