【每日一练】147—实现一个滑动按钮动画组件效果

outside_default.png

作者 | 杨小爱

写在前面

今天这个练习,是一个动画按钮小组件的实现,最终效果如下:

outside_default.png

当然,代码也很简单,具体实现过程如下:

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>dongh</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <a href="http://www.webqdkf.com" class="btn">鼠标来点一下<span><ion-icon name="arrow-forward-outline"></ion-icon></span></a>
  <script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script>
  <script nomodule src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
</body>
</html>

CSS代码:

*
{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
}
body 
{
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #28272a;
}
.btn 
{
  position: relative;
  width: 200px;
  height: 60px;
  background: rgba(255,255,255,0.1);
  border-radius: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: rgba(255,255,255,0.5);
  text-decoration: none;
  letter-spacing: 2px;
  border-top: 0.5px solid rgba(255,255,255,0.35);
  border-left: 0.5px solid rgba(255,255,255,0.35);
  padding-left: 40px;
  transition: 0.5s;
  overflow: hidden;
}
.btn:hover 
{
  padding-left: 0px;
  padding-right: 40px;
  color: rgba(255,255,255,1);
}
.btn span 
{
  position: absolute;
  left: 5px;
  width: 50px;
  height: 50px;
  background: #04fe4d;
  border-radius: 50%;
  transition: 0.5s ease-in-out;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #1a191d;
  font-size: 1.5em;
}
.btn:hover span 
{
  left: calc(100% - 55px);
}
.btn:after 
{
  content: '';
  position: absolute;
  width: 80px;
  height: 100%;
  z-index: 1;
  background: rgba(255,255,255,0.25);
  transform: translateX(-170px) skewX(30deg);
  transition: 0.75s ease-in-out;
}
.btn:hover:after 
{
  transform: translateX(170px) skewX(30deg);
}

写在最后

以上就是每日一练的全部内容,希望今天的小练习对你有用,如果你觉得有帮助的话,请点赞我,关注我,并将它分享给你身边做开发的朋友,也许能够帮助到他。

我是杨小爱,我们明天见。

推荐阅读

【每日一练】01~100练大合集汇总

以上是我们的视频号,如果你还没有关注我们的视频号的话,欢迎关注我们的视频号。

学习更多技能

请点击下方公众号

outside_default.png

5385d551bbc2d365892502f6024d69c6.jpeg

outside_default.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,对于您的问题,您可以通过以下步骤实现: 1. 在小程序中创建一个视图组件; 2. 在视图组件中添加滑动手势事件,用于处理用户向左滑动的操作; 3. 在滑动手势事件中,通过改变组件位置的方式实现向左滑动效果; 4. 在滑动手势事件中,同时添加删除按钮组件,并为删除按钮添加动画效果。 以下是一个示例代码: ``` <view class="list-item" catchtouchmove="onTouchMove"> <view class="delete-btn" animation="{{animationData}}" bindtap="onDelete">删除</view> <view class="item-content">这里是列表项内容</view> </view> ``` ``` Page({ data: { animationData: {}, startX: 0, startY: 0, deleteBtnWidth: 80 }, onTouchMove: function (e) { var startX = this.data.startX; var startY = this.data.startY; var touchX = e.touches[0].clientX; var touchY = e.touches[0].clientY; var offsetX = touchX - startX; var offsetY = touchY - startY; if (Math.abs(offsetX) > Math.abs(offsetY)) { this.setData({ animationData: {}, startX: touchX, startY: touchY }); if (offsetX < 0) { var animation = wx.createAnimation({ duration: 300, timingFunction: 'ease-out' }); animation.translateX(-this.data.deleteBtnWidth).step(); this.setData({ animationData: animation.export() }); } } }, onDelete: function () { // 处理删除按钮点击事件 } }); ``` 需要注意的是,以上代码只是一个示例,仅供参考。具体实现还需要根据您的具体需求进行调整,并添加相应的错误处理逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值