欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序demo(新闻类)

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

微信小程序demo(新闻类)

发布时间:2020-12-29  

1月9号微信小程序正是上线,在网上尝试了一下,发现很厉害。所以研究了一下。

下面是我的demo: 
包含四个页面:news.js/news.wxss/news.json/news.wxml

1.news.wxml: <scroll-view class="news_banner"> <!-- wx:for类似于el表达式 --> <view wx:for="{{selections}}" wx:for-index="idx" data-idx="{{idx}}" class="news_banner_text {{item.show?'select':''}}" data-cid="{{item.cateid}}" bindtap="bannerClick" > <text>{{item.catename}}</text> </view> </scroll-view> <view class="news"> <!-- data-* 保存数据的属性,组件触发事件时,会将数据发送给事件处理函数--> <!-- bind* 组件的事件,bindtap="newsClick"点击事件--> <view wx:for="{{newsList}}" class="news_list" data-nid="{{item.NewsId}}" data-ntitle="{{item.Title}}" data-nimg="{{item.Pic}}" data-nsource="{{item.Source}}" bindtap="newsClick"> <view class="news_left"> <image mode="scaleToFill" src="{{item.Pic}}"></image> <text class="news_date">{{item.CreatTime}}</text> </view> <view class="news_right"> <text class="news_title news_text">{{item.Title}}</text> <text class="news_subTitle news_text">{{item.Title_cn}}({{item.WordCount}} words)</text> <view class="news_data"> <text>难度:{{item.HardWeight}}|</text> <text>阅读:{{item.ReadCount}}|</text> <text>{{item.UserName}}|</text> <text>来源:{{item.Source}}</text> </view> </view> </view> </view> 2.news.js var app = getApp(); //引用外部文件(需要暴露util.js里面的formatNumber()函数) var TimeUtil = require('../../utils/util.js'); var bannerList = [ {'cateid':12134,'catename':'职场','show':false}, {'cateid':12235,'catename':'政治','show':false}, {'cateid':122316,'catename':'经济','show':false}, {'cateid':112317,'catename':'文化','show':false}, {'cateid':123228,'catename':'生活','show':false}, ] Page({ data : { }, onLoad: function(options){ //初始化相关参数 this.setData({ maxId : 0, cateid : 0, selections : bannerList }) this.loadNews(0); }, onReady:function(){ // 生命周期函数--监听页面初次渲染完成 }, onShow:function(){ // 生命周期函数--监听页面显示 }, onHide:function(){ // 生命周期函数--监听页面隐藏 }, onUnload:function(){ // 生命周期函数--监听页面卸载 }, onPullDownRefresh: function() { // 页面相关事件处理函数--监听用户下拉动作 // maxId初始化 this.setData({ maxId : 0 }); 下拉加载新闻 this.loadNews(0); }, onReachBottom: function() { // 页面上拉触底事件的处理函数 this.loadNews(2) }, bannerClick: function(e){ //刷新新闻类目 var dataset = e.currentTarget.dataset; for(var i in bannerList){ bannerList[i].show = false; } bannerList[dataset.idx].show = true; // 数据是双向绑定,直接更新对应数据,页面会加载新数据 // 新闻类目切换 this.setData({ cateid : dataset.cid, maxId : 0, selections : bannerList }) this.loadNews(1); }, /** * loadType 0,初始化/切换新闻类目 1,上拉刷新 2,下拉加载数据 */ loadNews: function(loadType){ var that = this; wx.request({ url: '此处是查询新闻信息的接口', data: { format : 'json', maxId : this.data.maxId, categoryId : this.data.cateid, pageCounts : 10 }, method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT // header: {}, // 设置请求的 header success: function(res){ var newsData = res.data; //当数据存在时 if(newsData.total > 0){ var newInfoList = newsData.data; var today = new Date(); //日期以及title长度处理 for(var i in newInfoList){ //日期处理 newInfoList[i].CreatTime = that.operateDate(today,newInfoList[i].CreatTime); //长度处理 //var title = newInfoList[i].Title; //if(title.length>76){ //newInfoList[i].Title = title.substrings(0,73) + '...'; //newInfoList[i].Title = title.substring(0,73) + '...'; //} } var newList = that.data.newsList; //下拉刷新,新增数据 if(loadType == 2){ for(var i in newInfoList){ newList.push(newInfoList[i]); } }else{ newList = newInfoList; } //数据展示 that.setData({ newsList : newList, maxId : newInfoList[9].NewsId }) } }, fail: function() { // fail }, complete: function() { // complete } }) }, newsClick: function(e){ //dataset内包含data-*的数据 var dataset = e.currentTarget.dataset; wx.navigateTo({ url: '../detail/detail?title='+ dataset.ntitle + '&newsId=' + dataset.nid + '&source=' + dataset.nsource + '&pic=' + dataset.nimg }) }, operateDate: function(today, date){ var year = today.getFullYear(); var month = today.getMonth(); var day = today.getDate(); var time = today.getTime(); //新闻时间 var newtime = Date.parse(date); var newDate = new Date(newtime); var newyear = newDate.getFullYear(); var newmonth = newDate.getMonth(); var newday = newDate.getDate(); //不同年 if(newyear < year){ return newyear + '-' + TimeUtil.formatNumber(newmonth+1) + '-' + TimeUtil.formatNumber(newday); }else if(newday < day){ //同年不同天 //24小时以内 if(time - newtime < 1000*60*60*24){ return "昨天" + TimeUtil.formatNumber(newDate.getHours()) + ':' + TimeUtil.formatNumber(newDate.getMinutes()); }else { return TimeUtil.formatNumber(newmonth+1) + '-' + TimeUtil.formatNumber(newday); } }else{ //1小时以内 if(time-newtime < 1000*60*60){ return parseInt((time-newtime)/1000/60) + '分钟前'; }else { return TimeUtil.formatNumber(newDate.getHours()) + ':' + TimeUtil.formatNumber(newDate.getMinutes()); } } } }) 4.效果

本文标签

: