文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

微信小程序怎么实现菜单弹出的阻尼动画效果

2023-06-26 08:50

关注

本篇内容主要讲解“微信小程序怎么实现菜单弹出的阻尼动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序怎么实现菜单弹出的阻尼动画效果”吧!

实现

代码结构如下:

微信小程序怎么实现菜单弹出的阻尼动画效果

新建组件menu:

menu.js

var Logger = require('../utils/Logger.js')Component({  properties: {    menu_list: Array,  },  data: {    showMenu: true  },  attached: function() {    this.setData({      menu_list: this.data.menu_list    })  },  methods: {    // 点击新建按钮    onCreateTap: function() {      this.setData({        showMenu: !this.data.showMenu      })    },    // 点击展开的单个按钮    onItemTap: function(event) {      var item = event.currentTarget.dataset.item;      // 微信小程序中是通过triggerEvent来给父组件传递信息的      //triggerEvent:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html      var menuEventDetail = {        item      }      this.triggerEvent('handleMenu', menuEventDetail)      //menuEventOption是触发事件的选项,包括设置事件是否冒泡之类的,不过这里默认是不冒泡的      // var menuEventOption = {      //         // }      // this.triggerEvent('handleMenu', menuEventDetail, menuEventOption)    }  }})

参考文档中Component的生命周期:

微信小程序怎么实现菜单弹出的阻尼动画效果

设置数据选择在attached方法内。

triggerEvent

查看文档

this.triggerEvent(eventName, eventDetail, eventOption)

还有个关键的地方:(其实最开始创建component的时候就自动生成了)全手打的话,要记得在menu.json里添加自定义组件的声明:

{  "component": true,  "usingComponents": {}}

menu.wxml

菜单个数根据传入的menu_list来,菜单显隐由showMenu控制

<view class='container'>  <view hidden="{{showMenu?false:true}}" class='sub-btn-container'><block wx:for='{{menu_list}}' wx:key='index'>  <view class='sub-btns' catchtap='onItemTap' data-item='{{item}}'><image class='btn' src='{{item.src}}' /><text class='sub-btn__name'>{{item.name}}</text>  </view></block>  </view>  <image catchtap='onCreateTap' class='btn' src='/resources/imgs/ic_create.png' /></view>

菜单的显示内容,由外部datas/menu-data.js控制

var menu_list = [{  id: 1,  name: '帖子',  src: '/resources/imgs/ic_create_1.png'}, {  id: 2,  name: '资讯',  src: '/resources/imgs/ic_create_2.png'}, {  id: 3,  name: '照片',  src: '/resources/imgs/ic_create_3.png'}]module.exports = {  menu_list: menu_list}

数据在使用的地方引入

组件的使用

home.js

var menuData = require('../../datas/menu-data.js')var Logger = require('../../utils/Logger.js')Page({  onLoad: function() {    this.setData({      menu_list: menuData.menu_list,    })  },  onReady: function() {    this.menu = this.selectComponent("#menu");  },  handleMenu: function(event) {    //这里的detail就是在自定义组件中定义的menuEventDetail    var item = event.detail.item;    Logger.v("item", item);    wx.showToast({      title: '新建' + item.name,    })  }})

home.wxml

<view>  <!-- handleMenu为父组件和自定义组件之间通信的桥梁 -->  <menu class='menu' menu_list='{{menu_list}}' bind:handleMenu='handleMenu' />  <text class='text'>HOME</text></view>

还有个关键的地方:使用的地方,这里是home,要记得在home.json中使用该组件(引号前面的相当于别名,起啥名,wxml里就用啥名)

home.json

{  "usingComponents": {"menu": "/components/menu"  }}

到此,相信大家对“微信小程序怎么实现菜单弹出的阻尼动画效果”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯