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


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 相关文章推荐
浅析js中的浮点型运算问题
Jan 06 Javascript
减少访问DOM的次数提升javascript性能
Feb 24 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
Aug 19 Javascript
简单的分页代码js实现
May 17 Javascript
详解微信小程序——自定义圆形进度条
Dec 29 Javascript
详解Vue2.0里过滤器容易踩到的坑
Jun 01 Javascript
纯JS实现简单的日历
Jun 26 Javascript
react-redux中connect的装饰器用法@connect详解
Jan 13 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
Jul 13 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 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
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
express启用https使用小记
2019/05/21 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
Python编程之微信推送模板消息功能示例
2017/08/21 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
迎八一活动主题
2014/01/31 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
2015年采购工作总结
2015/04/10 职场文书
民间借贷借条范本
2015/05/25 职场文书
欢迎新生标语2015
2015/07/16 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js