侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

微信小程序-可移动菜单的实现过程详解

微信(小程序)  /  管理员 发布于 5年前   534

前言

我们可以经常看到手机app里有的菜单栏是悬浮在首页的,用户可以拖动和点击菜单栏进行交互,今天代码君就教大家利用小程序的控件,实现一个可移动的菜单,效果图是这样的,要实现这样的效果,需要引出我们今天的重要人物movable-view

movable-view属性介绍

属性名 作用 参数值
direction 设置movable-view的移动方向 属性值有all、vertical、horizontal、none
inertia movable-view是否带有惯性 true/false 默认是false
out-of-bounds 超过可移动区域后,movable-view是否还可以移动 true/false 默认是false
x 定义x轴方向的偏移,如果x的值不在可移动范围内,会自动移动到可移动范围;改变x的值会触发动画 number
y 定义y轴方向的偏移,如果y的值不在可移动范围内,会自动移动到可移动范围;改变y的值会触发动画 number
damping 阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快 number 默认是20
friction 摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值 number默认是2

实现可移动菜单

一、wxml界面的实现

movable菜单

界面布局比较简单,需要注意的几点

  1. movable-view 必须设置width和height属性,不设置默认为10px
  2. movable-view 默认为绝对定位,top和left属性为0px
  3. 当movable-view小于movable-area时,movable-view的移动范围是在movable-area内;当movable-view大于movable-area时,movable-view的移动范围必须包含movable-area(x轴方向和y轴方向分开考虑)
  4. movable-view必须在组件中,并且必须是直接子节点,否则不能移动

二、xxx.js随机移动实现的逻辑

Page({data: {x: 0,y: 0,isStop:false,},moveView:function(e){var that = this;setTimeout(function () {that.move(that);}, 1000);},stopMove: function (e) {this.setData({isStop: true})},move: function (that){var randowX = that.GetRandomNum(1, 200);var randowY = that.GetRandomNum(1, 400);that.setData({x: randowX,y:randowY,})if(!that.data.isStop){setTimeout(function () {that.move(that);}, 100);}},//随机函数GetRandomNum: function (Min, Max) {var Range = Max - Min;var Rand = Math.random();return (Min + Math.round(Rand * Range));},

js里面需要讲解的内容比较多

  1. x/y 用来控制菜单栏的位置,isStop停止移动
  2. 介绍一个js延迟执行事件的方法setTimeout(function () { }, 1000),逗号左边执行事件的方法,右边设置延迟多久执行事件,1000对应的是一秒
  3. GetRandomNum 这个方法是我自定义的,用于生成随机数字,计算滚动的距离
  4. 还有一个需要注意点是,要事件监听更新数据的时候,this对象在程序中随时会改变,此时需要执行 var that = this;把this对象传递给that就可以解决上面遇见的问题

三、wxss样式

.moveArea {height: 400px;width:200px;background: red;margin: 10px;}.moveView {height: 100rpx;width: 100rpx;line-height: 100rpx;background: blue;border-radius: 50%;text-align: center;margin: 10rpx;}

今天讲解的样式有一下几个

如何把图形从方形变成圆形?

border-radius 这是今天的主角,把他的值设置成50%,就由方形变成圆形了,这个属性是设置圆角的,设置10%,是有一点圆角的方形

设置内容垂直居中方法

这是代码君的一个小窍门,把height和line-height设置成一样,他自动会垂直居中

总结

今天讲解的是可移动的菜单,本身实现是没什么难度的,我又引入了几个知识点,一个是推迟事件函数的使用还有就是几个css样式设置的小窍门,读者回去认真记住使用规则,后面我们陆续会用上,好啦,今天的课程就到这~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:

  • 微信小程序商城项目之淘宝分类入口(2)
  • 微信小程序利用Canvas绘制图片和竖排文字详解
  • 微信小程序Echarts图表组件使用方法详解
  • 新手快速入门微信小程序组件库 iView Weapp
  • 微信小程序入口场景的问题集合与相关解决方法


  • 上一条:
    js实现简单实用的AJAX完整实例
    下一条:
    微信小程序调用天气接口并且渲染在页面过程详解
  • 昵称:

    邮箱:

    2条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 微信模板消息改版后发送规则记录(微信订阅消息参数值内容限制说明)(1个评论)
    • 微信支付v3对接所需工具及命令(0个评论)
    • 2023年9月1日起:微信小程序必须备案才能上线运营(0个评论)
    • 腾讯官方客服回应了:微信好友上限约10000个!(1个评论)
    • 2023年做微信小程序的老铁注意:新增收费项、微信小程序获取手机号也收费了(2个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-10
    • 2018-01
    • 2020-03
    • 2021-06
    • 2021-10
    • 2022-03
    • 2023-02
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客