微信小程序实现收藏与取消收藏切换图片功能


Posted in Javascript onAugust 03, 2018

wxml界面使用image标签

<image wx:if="{{collected}}" catchtap='onCollectionTap' src='/images/icon/collection.png'></image>
   <image wx:else src='/images/icon/collection-anti.png' catchtap='onCollectionTap'></image>

js文件上的脚本:

// pages/post_detail/post_detail.js
var postData = require("../../data/posts_data.js")
Page({
 /**
  * 页面的初始数据
  */
 data: {
 },
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function(options) {
  var postId = options.id;
  this.data.currentPostId = postId
  var postsData = postData.postList[postId];
  console.log(postsData);
  // this.data.postData=postsData;
  this.setData({
   post_key: postsData
  })
  // var postsCollected={
  //  1:"true",
  //  2:"false",
  //  3:"true",
  // }
  // console.log(postData);
  // 从缓存中读取所有的缓存状态
  var postsCollected = wx.getStorageSync("posts_Collected")
  //如果缓存为真,执行以下代码
  if (postsCollected) {
   //读取其中一个缓存状态
   var postsCollected = postsCollected[postId]
   this.setData({
    //将是否被收藏的状态上绑定到collected这个变量上
    collected: postsCollected
   })
  } else {
   var postsCollected = {};
   postsCollected[postId] = false;
   wx.setStorageSync("posts_Collected", postsCollected)
  }
 },
 onCollectionTap: function(event) {
  //获取缓存的方法
  var postsCollected = wx.getStorageSync('posts_Collected');
  var postCollected = postsCollected[this.data.currentPostId];
  console.log(postCollected);
  //取反操作,收藏的话,点击变成未收藏,反之,变成收藏。
  postCollected = !postCollected;
  postsCollected[this.data.currentPostId] = postCollected;
  // //更新文章是否收藏的缓存值。
  // wx.setStorageSync('posts_Collected', postsCollected)
  // //更新数据绑定变量,从而实现切换图片。
  // this.setData({
  //  collected: postCollected
  // })
  this.showModal(postsCollected, postCollected)
  // wx.showToast({
  //  title: postCollected ? "收藏成功" : "取消收藏",
  //  duration: 800,
  //  icon: "success"
  // })
  // wx.showModal({
  //  title: '确定收藏',
  //  content: '这是一个模态弹窗',
  //  success: function (res) {
  //   if (res.confirm) {
  //    console.log('用户点击确定')
  //   } else if (res.cancel) {
  //    console.log('用户点击取消')
  //   }
  //  }
  // })
  console.log("onCollectionTap");
 },
//使用showModal API来实现界面上逻辑操作。
 showModal: function(postsCollected, postCollected) {
//这个注意一下,由于this是在page下调用的方法,这里是在自定义函数下,所有必须重新赋值到一个新的变量,才能重新使用,不明白的同学们,记住就行。
  var ts = this;
  wx.showModal({
   title: '收藏',
   content: postCollected ? "收藏该文章" : "取消收藏该文章",
   success: function(res) {
    if (res.confirm) {
     wx.setStorageSync('posts_Collected', postsCollected)
     //更新数据绑定变量,从而实现切换图片。
     ts.setData({
      collected: postCollected
     })
     console.log('用户点击确定')
    } else if (res.cancel) {
     console.log('用户点击取消')
    }
   }
  })
 },
 // onCollectionTap: function(event) {
 //  var baoxue = wx.getStorageSync("key");
 //  console.log(baoxue);
 // },
 onShareTap: function(event) {
  // wx.removeStorageSync("key")
  //缓存的上限最大不能超过10MB
  wx.clearStorageSync();
  console.log("onShareTap");
 },
 /**
  * 生命周期函数--监听页面初次渲染完成
  */
 onReady: function() {
 },
 /**
  * 生命周期函数--监听页面显示
  */
 onShow: function() {
 },
 /**
  * 生命周期函数--监听页面隐藏
  */
 onHide: function() {
 },
 /**
  * 生命周期函数--监听页面卸载
  */
 onUnload: function() {
 },
 /**
  * 页面相关事件处理函数--监听用户下拉动作
  */
 onPullDownRefresh: function() {
 },
 /**
  * 页面上拉触底事件的处理函数
  */
 onReachBottom: function() {
  console.log("到底了");
 },
 /**
  * 用户点击右上角分享
  */
 onShareAppMessage: function() {
 }
})

微信小程序实现收藏与取消收藏切换图片功能

微信小程序实现收藏与取消收藏切换图片功能

微信小程序实现收藏与取消收藏切换图片功能

微信小程序实现收藏与取消收藏切换图片功能

总结

以上所述是小编给大家介绍的微信小程序实现收藏与取消收藏切换图片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript延迟加载
Mar 09 Javascript
jQuery中:radio选择器用法实例
Jan 03 Javascript
常见的javascript跨域通信方法
Dec 31 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
利用js+css+html实现固定table的列头不动
Dec 08 Javascript
AngularJS指令与控制器之间的交互功能示例
Dec 14 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
Mar 07 Javascript
Vue精简版风格指南(推荐)
Jan 30 Javascript
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
JavaScript基于遍历操作实现对象深拷贝功能示例
Mar 05 Javascript
Node 模块原理与用法详解
May 13 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 #Javascript
mpvue跳转页面及注意事项
Aug 03 #Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 #Javascript
mpvue小程序仿qq左滑置顶删除组件
Aug 03 #Javascript
JavaScript中call和apply方法的区别实例分析
Aug 03 #Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
Aug 03 #Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 #Javascript
You might like
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
php轻松实现文件上传功能
2016/03/03 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
JavaScript的setter与getter方法
2017/11/29 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
layer实现弹出层自动调节位置
2019/09/05 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
Python 调用DLL操作抄表机
2009/01/12 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python 12306抢火车票脚本
2018/02/07 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python实现名片管理系统
2018/11/29 Python
Python中函数的返回值示例浅析
2019/08/28 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
网络工程师的自我评价
2013/10/02 职场文书
中英文自我评价语句
2013/12/20 职场文书
影视动画专业个人的自我评价
2013/12/31 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
公司车队管理制度
2015/08/04 职场文书
实用求职信模板范文
2019/05/13 职场文书
Python利用capstone实现反汇编
2022/04/06 Python