小程序实现拖拽功能原来这么简单??

  我们公司是做商城项目的,试问当页面有一个悬浮窗的快捷功能时,本意是让用户操作更方便的,由于悬浮窗会挡住页面部分元素,导致你要点击某个目标时点击范围变小,操作体验不友好....用户心里可能在想:这个破东西挡住了,拖拽又拖不了,怎么搞的.... 不买了,生气(︶^︶)

所以,前端的交互是很重要的,因为这是用户最直观能感受到的东西,交互没做好,我认为是一定程度上影响到用户下单决定,影响业绩的。秉持着这个理念,我把悬浮窗改成了可拖拽的。以下是实现的方式:

1.小程序已经很贴心的提供了组件给我们,movable-view 需要搭配movable-area使用,具体的可以去看文档  👉点这里

2.先确定好拖拽的范围,我这边定的拖拽范围是下图绿色框住的位置,不能超过绿色范围,大家可以根据自己公司业务情况调整拖拽范围。

3.新建了一个悬浮窗的组件float-nav。那刚刚框出来的位置,实际就是手机屏幕的宽高,所以先获取手机屏幕的宽高。

// float-nav.js
Component({
  /**
   * 组件的初始数据
   */
  data: {
    screenWidth: 0, // 手机屏幕宽度
    screenHeight:0, //手机屏幕高度
  },
  lifetimes: {
    attached: function () {
      // 获取手机信息
      const systemInfo = wx.getSystemInfoSync();
      this.setData({
        screenWidth: systemInfo.screenWidth,
        screenHeight: systemInfo.screenHeight
      });
    },
  }
})

4.使用微信提供的组件, 视图区高度减掉了130的高度,是因为tabbar的高度,拖拽范围不能超过tabbar。我把悬浮窗位置定在了x轴330px,y轴400px的位置。

<!--float-nav.wxml-->
<movable-area style="width: {{screenWidth}}px;height: {{screenHeight - 130}}px">
  <movable-view x="{{330}}" y="{{400}}" direction="all" style="width: 96rpx;height: 96rpx;" class="float-nav">
    <view class="float-nav-icon">
    </view>
  </movable-view>
</movable-area>
/*float-nav.wxss*/
.float-nav {
  position: fixed;
  bottom: 0rpx;
  right: 0;
}
.float-nav-icon {
  width: 96rpx;
  height: 96rpx;
  background: url('/icon-cart.png') no-repeat;
  background-size: cover;
} 

【效果展示】

~~ END ~~ 

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
围棋小程序功能可以分为基本功能和高级功能两个部分。 基本功能包括: 1. 游戏规则介绍:在用户进入游戏界面之前,可以设置一个简单的规则介绍,让用户对围棋游戏有一个基本的认识。 2. 游戏模式选择:提供人机对战和人人对战两种游戏模式。 3. 棋盘渲染:在游戏界面上渲染出棋盘,并且在棋盘上标出行列坐标。 4. 棋子落子:在游戏界面上实现棋子的落子,可以通过点击或拖拽的方式来完成。 5. 悔棋功能:提供悔棋功能,使得用户可以在一定的步数内撤销自己的一步落子。 6. 认输功能:提供认输功能,使得用户可以在无法逆转局面的情况下放弃比赛。 高级功能包括: 1. 电脑AI:在人机对战模式下提供电脑AI,让用户可以挑战更强的对手。 2. 棋谱保存:提供棋谱保存功能,让用户可以保存自己的比赛记录,并且可以在后续的时间里回顾自己的比赛。 3. 棋谱分享:提供棋谱分享功能,让用户可以将自己的比赛记录分享给其他人。 4. 棋盘背景选择:提供棋盘背景选择功能,让用户可以根据自己的喜好选择不同的棋盘背景。 5. 棋子风格选择:提供棋子风格选择功能,让用户可以根据自己的喜好选择不同的棋子风格。 实现这些功能的策略可以参考以下步骤: 1. 确定团队开发人员,包括开发、测试、产品、设计等。 2. 确定开发工具和开发语言,如使用 React Native 或者 Flutter 等跨平台框架进行开发。 3. 设计并实现游戏规则介绍、游戏模式选择、棋盘渲染、棋子落子、悔棋功能、认输功能等基本功能。 4. 设计并实现电脑AI、棋谱保存、棋谱分享、棋盘背景选择、棋子风格选择等高级功能。 5. 进行测试和调试,并逐步完善和优化产品。 6. 发布和推广产品,包括上架应用商店、推广营销等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值