微信小程序实现点赞、取消点赞功能
最近接触到小程序,发现很有意思,在项目中遇到了一点小问题,就是点赞+取消点赞有些冲突,还有就是多项的点击,话不多说咱们直接上代码!
效果图
wxml
<block wx:for="{{msg}}"> <image class='imgList' hidden='{{item.show}}' bindtap='zan' data-index='{{index}}' src='../resizeApi.png'></image> <image class='imgList' hidden='{{!item.show}}' bindtap='zan' data-index='{{index}}' src='../resizeApi (1).png'></image> <text> {{item.show}}</text> </block>
wxss
.imgList{ height: 150rpx; width: 150rpx; }
js
Page({ data: { msg: [ { 'show': true }, { 'show': false }, { 'show': false }, { 'show': false }, { 'show': false }, { 'show': false }, { 'show': false }, { 'show': false }, ] }, zan: function (e) { const vm = this; const _index = e.currentTarget.dataset.index; let _msg = [...vm.data.msg]; // msg的引用 _msg[_index]['show'] = !vm.data.msg[_index]['show']; vm.setData({ msg: _msg }) } });
代码中用到了es6的解构赋值,不知道的小伙伴可以百度学习一下了,其中的图片可以自行下载,能看到效果就可以了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
小程序实现列表点赞功能
最近在开发一个小程序,想添加一个点赞功能,那到底怎么实现呢?因为要和后台服务器同步数据,所以这个我想了好几天应该怎么实现点赞和取消点赞的逻辑,经过两天的实践调试,最终实现了. 思路如下: 1.找到对应文章列表的id (我用的是 wx:for 列表渲染 加 template 模板来实现文章列表的,所以如果没找到对应的 id ,点赞时可能会出现点击一个列表,别的列表也会发生变化的事件) 2.在前端利用 wx.setStorageSync 保存对应的列表点赞的 id 的缓存 后面通过缓存判断该文章是否
-
小程序点赞收藏功能的实现代码示例
本文介绍了小程序点赞收藏功能的实现代码示例,分享给大家,具体如下: /收藏/ focusFavoriteTab: function (e) { var that = this; var isFocus = that.data.isFocus; console.log("isFocus", isFocus) var itemId = that.data.itemId; if (isFocus) { favoriteService.cancel(that, itemId).then((re
-
微信小程序项目总结之点赞 删除列表 分享功能
小程序点赞功能 思路:在后台没有给你接口自己模拟数据 data:{ likes:{ iszan:false, num:0 } } 1.遍历评论列表 判断点击的id 2.如果id相同 判断是否点赞过 如果为true -1 如果为false +1 3.更新数据 bindlike:function(e){ var newData = this.data.release.map(function(item){ if (item.id == e.currentTarget.dataset.id){ con
-
微信小程序小组件 基于Canvas实现直播点赞气泡效果
先发Canvas实现直播点赞气泡效果图: 实现细节: 1.JS: drawImage:function(data){[/align] var that = this var p10= data[0][0]; /* 三阶贝塞尔曲线起点坐标值*/ var p11= data[0][1]; /* 三阶贝塞尔曲线第一个控制点坐标值*/ var p12= data[0][2]; /* 三阶贝塞尔曲线第二个控制点坐标值*/ var p13= data[0][3]; /* 三阶贝塞尔曲线终点坐标值*/ var
-
微信小程序实现列表页的点赞和取消点赞功能
今天开发了一个文章的留言版块,于是想到要为某个留言点赞,点过赞的再次点击会取消点赞,代码如下: /*更新点赞*/ update_zan:function(e){ var that = this; var data = e.currentTarget.dataset; var mid = data.mid; var cookie_mid = wx.getStorageSync('zan') || [];//获取全部点赞的mid var isadd = 1; var newmessage = [];
-
微信小程序基于本地缓存实现点赞功能的方法
本文实例讲述了微信小程序基于本地缓存实现点赞功能的方法.分享给大家供大家参考,具体如下: wxml中的写法 注意: 1. 使用wx:if="{{condition}}" wx:else实现图标的切换效果: 2. 为图片绑定点击事件bindtap="toCollect",两个image标签都要绑定! <image wx:if="{{collection}}" src="/images/icon/pic1.png" bind
-
微信小程序实现带刻度尺滑块功能
摘要: 与自带的slider不同的是,它是通过手势滑动标尺得到取值,而不是通过滑动滑块本身. 效果图 场景 当一屏显示不下,例如年龄体重选择,金额选择等大区间需要的选择器,相比自带的picker要直观一些. 思路: 先画一个scrollView 2 装进canvas lineTo画刻度线段,lineTo+fill画出三角形游标,fillText描绘文本标签 通过bindscroll监听刻度尺触摸事件 渲染取值到页面 基本布局 <scroll-view scroll-x="true"
-
微信小程序 向左滑动删除功能的实现
微信小程序 向左滑动删除功能的实现 实现效果图: 实现代码: 1.wxml touch-item元素绑定了bindtouchstart.bindtouchmove事件 <view class="container"> <view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index="{{index}}" bindtouchst
-
微信小程序实现添加手机联系人功能示例
本文实例讲述了微信小程序实现添加手机联系人功能.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 1)WXML文件 <view bindlongtap="phoneNumTap">{{phoneNum}}</view> 2)JS文件 Page({ data:{ phoneNum:'12345678901'//测试用的号码,并非真实号码 }, // 长按号码响应函数 phoneNumTap:function(){ var that=this; //
-
微信小程序实现的自定义分享功能示例
本文实例讲述了微信小程序实现的自定义分享功能.分享给大家供大家参考,具体如下: 大家都知道,小程序有分享的功能,可以分享整个程序,也可以自定义分享的内容 onShareAppMessage 在 Page 中定义 onShareAppMessage 函数,设置该页面的分享信息. 只有定义了此事件处理函数,右上角菜单才会显示"分享"按钮 用户点击分享按钮的时候会调用 此事件需要 return 一个 Object,用于自定义分享内容 示例代码: Page({ onShareAppMessag
-
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
由于微信小程序没有提供类似 Image 这样的 JS 对象,要实现图片的预加载要麻烦一些, wxapp-img-loader自定义组件可以在微信小程序中实现图片预加载功能. 使用 1.下载 wxapp-img-loader项目源代码(https://github.com/o2team/wxa...),将 img-loader 目录拷贝到你的项目中 2.在页面的 WXML 文件中添加以下代码,将组件模板引入 <import src="../../img-loader/img-loader.w
-
微信小程序实现的五星评价功能示例
本文实例讲述了微信小程序实现的五星评价功能.分享给大家供大家参考,具体如下: 实现五星评价功能,效果图如下: .wxml文件: <view class="star-title">1.品质效果</view> <view class="star-pos"> <image class='stars' bindtap="changeColor" data-index='0' data-no="{{ite
-
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
本文实例讲述了微信小程序导航栏滑动定位功能.分享给大家供大家参考,具体如下: 实现的效果 实现的原理 1. 通过对scroll的监听获取滚动条的scrollTop值; 2. 在导航的class判断scrollTop; 3. 切换position:fixed与position:relative. WXML <view style="height:100%;position:fixed;width:100%;"> <scroll-view scroll-y="f
-
微信小程序WebSocket实现聊天对话功能
本文实例为大家分享了微信小程序WebSocket实现聊天对话功能的具体代码,供大家参考,具体内容如下 js var app = getApp(); var socketOpen = false; var frameBuffer_Data, session, SocketTask; var url = 'ws://请填写您的长链接接口地址'; var upload_url ='请填写您的图片上传接口地址' Page({ data: { user_input_text: '',//用户输入文字 in
-
微信小程序实现tab页面切换功能
效果图如下所示: wxml <scroll-view scroll-x="true" class="ip_tab_comtainer"> <view class="ip_tab_comtainer_padd"></view> <block wx:for="{{ips}}" wx:for-item="ip" wx:key="{{ip.id}}"&g
随机推荐
- 在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用
- 快速理解MySQL中主键与外键的实例教程
- apache服务器全局配置详解(全)
- 使用paramiko远程执行命令、下发文件的实例
- C语言入门之指针用法教程
- oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
- Fuel 30 分钟快速安装OpenStack(图文教程)
- Android仿贴吧内容下的简单ListView嵌套GridView
- 将json当数据库一样操作的javascript lib
- bootstrap fileinput 插件使用项目总结(经验)
- js 模仿锚点定位的实现方法
- Powershell小技巧之通过EventLog查看近期电脑开机和关机时间
- MySQL的id关联和索引使用的实际优化案例
- javascript设计模式之module(模块)模式
- 禁用不是好事 走出虚拟内存禁用的误区
- 卸载掉您计算机中的屏幕保护程序
- android动态壁纸调用的简单实例
- 谈谈新手如何学习PHP
- JavaScript插件Tab选项卡效果
- java日期格式化SimpleDateFormat的使用详解