微信小程序点击切换图片、收藏功能的实现!

news/2024/10/18 2:37:54/

微信小程序图片点击切换和收藏功能是非常常用的!有更好写法的请留言,喜欢小程序和web前端开发的请加我微信Angelo_Sifan

效果图如下

1  <image  catchtap='onCollectionTap' wx:if="{{collected}}" src="/images/icon/collect1.png"></image>
2       <image wx:else catchtap='onCollectionTap' src="/images/icon/collect.png"></image>

首先对Image绑定相应变量,选用catchxxx而不选用bindxxx进行绑定是因为,catch不会出发冒泡事件就不会向父节点传递,写的过程中一定要用wx:if和wx:else来进行判断。然后我们还需要在JS中对onCollectionTap变量进行定义,最后当组件触发事件时,逻辑层绑定该事件的处理函数会收到一个事件对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*这是对应的JS文件*/
  2 Page({
  3 data: {
  4
  5     },
  6     onLoad:  function  (option) {
  7      var  postId = option.id; //要先在对应的数据文本中对每个栏目定义postId、比如postId: 0 postId:1
  8      this .data.currentPostId = postId;  //借助顶部data作为中转,拿到上面这行postid后,将它放到下面var postCollected = postsCollected[]中
  9          //将这个postId从onLoad中传递到下面的onCollectionTap中
10          var  postData = postsData.postList[postId]; //定义每个新闻列表对应顺序是哪个新闻内容
11
12  //用户收藏功能
14         var  postsCollected = wx.getStorageSync( 'posts_collected' //从缓存中读取所有的缓存状态
15          if  (postsCollected) {    //postsCollected为真的情况,在缓存中存在
16              var  postCollected = postsCollected[postId] //读取其中一个缓存状态
17              this .setData({
18                 collected: postCollected  //将是否被收藏的状态上绑定到collected这个变量上
19             })
20         }
21          else  {        //为假的情况,缓存中为空的情况
22              var  postsCollected = { };  //对postsCollected进行一个赋值操作,从而防止为空,从而省掉后面对它是否为空进行测试的步骤
23             postsCollected[postId] =  false // 让当前的这篇文章状态为false,从而收藏星星不点亮
24             wx.setStorageSync( 'posts_collected' , postsCollected); //将postsCollected对象放到缓存中
25         }
26     },
27     onCollectionTap:  function  (event) {     // 定义onCollectionTap事件用来确定文章是否收藏,如果没收藏就能点亮星星进行收藏
28          var  postsCollected = wx.getStorageSync( 'posts_collected' );    //获取缓存的方法
29          var  postCollected = postsCollected[ this .data.currentPostId];    //确定当前文章是否有缓存的状态,传递参数方法、借助其他参数来传递变量,如上的data
30         postCollected = !postCollected; // 取反操作,收藏变成未收藏、未收藏变为收藏
31         postsCollected[ this .data.currentPostId] = postCollected; //整体缓存的某一篇文章的缓存值等于postCollected从而更新一个变量
32         wx.setStorageSync( 'posts_collected' , postsCollected); //更新文章是否收藏的缓存值,相当于在数据库中做了一次更新。
33          //更新Data的数据绑定变量,从而实现图片切换
34          this .setData({
35             collected: postCollected  //当前的collected为postCollected
36         })
37     }
38 )}



原文链接:https://www.cnblogs.com/EdisonVan/p/9027535.html


http://www.ppmy.cn/news/459263.html

相关文章

hexo+yilia添加背景特效

文章目录 套路说明鼠标点击出现爱心特效鼠标点击显示文字--需要引入jQuery鼠标点击烟花爆炸效果动态线条背景雪花特效2.大雪花(有齿轮)雪花特效3.小雪花(无齿轮)彩带1.鼠标点击自动替换彩带彩带2.自动飘动代码雨 添加多种页面背景特效&#xff0c;参考&#xff1a;Hexo 博客优化…

2010年4月51CTO壁纸点评活动获奖公告

Down.51cto.com 【点评4月壁纸 送下载豆】 规则&#xff1a;2010年3月25日—4月25日&#xff0c;4月壁纸点评活动结束&#xff0c;管理员将抽选若干优质评论&#xff0c;优质评论发布者将奖励30-50颗下载豆。 优质评论衡定标准&#xff1a;表达壁纸使用的真实感受、针对壁纸给…

html桌面倒计时代码,超详细!使用HTML、CSS、JavaScript实现倒计时。附加功能——点击页面出现小心心...

写在开头的感谢: 感谢 @Destiny_1853 的灵感和获取时间的代码提供。 感谢 @扰扰 的页面点击出现小心心的代码提供。 本次,我们准备写一个有关倒计时的小例子,正好最近在进行前端实训,学习了HTML和CSS,因此就在这里先实操一下 1、本次倒计时我们准备采用,天 时 分 秒 四个…

【美化§绿色爱心的树xp电脑主题下载§】

【美化绿色爱心的树xp电脑主题下载】 爱心的树电脑桌面壁纸下载《鼠标右键另存为本地》 爱心的树电脑桌面主界面效果图 爱心的树电脑桌面开始菜单效果图 爱心的树电脑桌面图标效果图最新雨林木风 爱心的树电脑鼠标效果图 爱心的树主题内容&#xff1a;爱心的树电脑桌面壁纸下载…

ajax 给select赋值,jquery操作select取值赋值与设置选中

摘要 腾兴网为您分享:jquery操作select取值赋值与设置选中,掌上优云,杂志迷,悦作业,小米云盘等软件知识,以及屏幕,赢在街拍客,动图,天下任我行,网易充值中心,马上用车,cf不掉血,回收app,小蜜蜂app,买书,浙商信用卡,子平八字排盘,爱心壁纸,青岛智慧城市,嘟嘟网…

【沙滩爱心桌面主题】_9.4

沙滩爱心电脑桌面壁纸下载《鼠标右键另存为本地》 沙滩爱心电脑桌面主界面效果图 沙滩爱心电脑桌面开始菜单效果图 沙滩爱心电脑桌面图标效果图 沙滩爱心电脑鼠标效果图 沙滩爱心桌面主题内容:沙滩爱心电脑桌面壁纸下载《鼠标右键另存为本地》 沙滩爱心电脑桌面主界面效果图 沙…

清华博士接亲被要求现场写代码,5 分钟做出一颗爱心

转自&#xff1a;CSDN 6月20日&#xff0c;话题#清华博士接亲被要求现场写代码#冲上微博热搜&#xff0c;有网友直呼&#xff1a;以后接亲没点能力&#xff0c;怕是成功不了&#xff0c;不得不说&#xff0c;有才华的男生真帅&#xff01; 图片来源&#xff1a;头条新闻 近日在…

利用python,20行代码即可实现照片墙,还可以生成爱心形状哟

照片&#xff0c;可以勾起无限零零碎碎的回忆&#xff0c;或美好&#xff0c;或悲伤。 将零零散散的回忆连接在一起&#xff0c;便是一段难以忘怀的往事。 今天就带给大家一种把多张照片集合成一张“照片墙”的方法&#xff0c;包学包会,注释非常全面哦~&#x1f604; 开始前…