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="http://static.iyuba.com/cms/news/image/{{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: {}, // 设置请求的 headersuccess: 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());}}}
})

3.CSS


view {overflow: hidden;
}.news_banner {background: #ffffff;background-image: url(../images/line.png);position: fixed;top: -1rpx;z-index: 20;overflow: auto;white-space:nowrap;
}.news_banner_text {font-size: 30rpx;padding-left: 3rpx;padding-right: 3rpx;text-align: center;display: inline-block;width: 90rpx;
}.news_banner_text text {font-size: 30rpx;font-family: '黑体','Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;display: block;
}.select {border-bottom: 4rpx solid #3dace9;
}.news {margin-top: 56rpx;width: 100%;
}.news_list {width: 100%;border-bottom: 1rpx solid #bcbcbc;padding-top: 15rpx;
}.news_left {width: 220rpx;float: left;position: relative;
}.news_left image {width: 220rpx;height: 165rpx;
}.news_date{width: 220rpx;font-size: 20rpx;color: #ffffff;display: block;position: absolute;bottom: 0px;opacity: 0.6;background-color: #000000;text-align: center;
}.news_right {padding-left: 12rpx;width: 518rpx;float: left;
}.news_right text {margin-top: 15rpx;margin-bottom: 15rpx;
}
/*处理字符串过长的展示*/
.news_text {text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:2;overflow: hidden;
}.news_title {width: 95%;font-size: 26rpx;font-weight:bold;line-height: 30rpx;color: #828282;
}.news_subTitle {width: 98%;display: block;font-size: 26rpx;color: #323232;line-height: 30rpx;
}.news_data{width: 98%;font-size: 20rpx;color: #323232;text-align: right;
}

4.效果


微信web开发工具,用起来有点坑,所以选择的是其他的编辑器,然后用微信web开发工具编译。另外界面并不美观,毕竟不是为了好看。

微信小程序demo(新闻类)相关推荐

  1. 微信小程序调用新闻类API

    做过微信小程序的伙伴都知道,当我们需要实现一个小程序中类似于新闻资讯的功能时,需要我们调用一个外部实时更新的新闻数据接口,从而将数据展示在我们的手机页面上.那么我们该如何实现这个功能呢?下面我们来实现 ...

  2. java小程序贪吃蛇代码_微信小程序Demo之贪食蛇

    原标题:微信小程序Demo之贪食蛇 差不多大半年前,笔者发布了一篇关于OC版贪食蛇开发的文章,时隔多月,微信小程序横空出世,于是闲来无事的我又写了一个小程序版. 01页面布局 关于小程序笔者就不做介绍 ...

  3. 微信小程序编写新闻阅读列表

    微信小程序编写新闻阅读列表 本篇学习主要内容 Swiper 组件(轮播图) App.json 里的关于导航栏.标题的配置. Page 页面与应用程序的生命周期 数据绑定(核心知识) 数据绑定的运算与逻 ...

  4. 基于腾讯云开发微信小程序(新闻发布及共享平台)上

    基于腾讯云开发微信小程序(新闻发布及共享平台)上 文章目录 传统的微信小程序开发 一.云开发是什么? 二.使用步骤 1.创建云环境 2.云数据库的创建 3.云储存 4.云函数 总结 传统的小程序开发 ...

  5. 微信小程序开发-新闻列表之新闻列表绑定

    微信小程序开发-新闻列表之新闻列表绑定开发教程: 1.效果图预览 2.准备工作 在拿到效果图后不要先急着去写代码,而是要去分析一下页面的整体结构,用什么方式定位和布局.小程序里建议使用flex布局,因 ...

  6. 最全微信小程序demo

    wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...

  7. 微信小程序 添加社交类目

    微信小程序添加社交类目,需要上传<非经营性互联网信息服务备案核准>即icp备案文件 可以通过https://beian.miit.gov.cn/#/search/info查询

  8. 微信小程序搭建新闻列表(跟进上一篇博客案例)

    本文旨在完善上一篇博客案例 后台接口文档 主要会用到的新语法罗列[ {发送请求篇:微信小程序如何向后端发送请求}, {页面跳转传递参数和接收参数:微信小程序页面跳转和接收参数}, {修改data中变量 ...

  9. 小程序和vue语法对比_React语法开发微信小程序 Demo

    前言 从16年微信小程序内测的时候至今,微信小程序用实践证明了自己的创新和价值,微信小程序的规则也在社区的影响下变得更加完善. 但是不得不说,用惯了VSCode,官方的开发工具确实不怎么好用.之前没有 ...

  10. 微信小程序初探【类微信UI聊天简单实现】

    微信小程序最近很火,火到什么程度,只要你一打开微信,就是它的身影,几乎你用的各个APP都可以在微信中找到它的复制版,另外官方自带的跳一跳更是将它推到了空前至高的位置.对比公众号,就我的感觉来说,有以下 ...

最新文章

  1. 云计算开发要学习哪些东西?云计算开发的内容
  2. 干货 | 只有100个标记数据,如何精确分类400万用户评论?
  3. Delphi之对象库(Object Repository)
  4. Spring-05 -AOP [面向切面编程] -Schema-based 实现aop的步骤
  5. iOS之Socket的使用-AsyncSocket
  6. 两雄争霸:解读MSU2019年度视频编码大赛
  7. 等待十年,史上第一个 64 位版 Visual Studio 将于今夏公开首个预览版!
  8. 高颜值网易云音乐第三方播放器 YesPlayMusic Mac中文版 支持m1
  9. OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id
  10. 【广告技术】用张量分解预测广告库存,广告投放更可靠!
  11. wampp更新php版本,有没有办法在XAMPP中使用两个PHP版本?
  12. 计算机核心期刊、学报一览
  13. python设置http代理_python中设置HTTP代理的方法
  14. 如何使用SQL Server游标
  15. Oracle 客户端 PLSQL 12.0.7 安装、数据导出、Oracle 执行/解释计划
  16. 载入java VM时出错216_Android6.0中oat文件的加载过程
  17. Java中关于字符类型在Unicode表中表示
  18. QUAR_CH_USB2TTL V1 USB转4路UART串口侦听板设计日志1
  19. 国密SM2非对称算法与实现
  20. 为什么计算机无法访问u盘,打开U盘后为什么提示拒绝访问 打开U盘后提示拒绝访问原因...

热门文章

  1. 线性规划 | 用实例展示Matlab和lingo求解线性规划问题的差异
  2. CPU的工作原理浅析
  3. GPS数据格式的分析与处理
  4. MPQ5031GRE-0013-AEC1-Z USB 3.0 充电协议 汽车应用
  5. CocosBuilder 使用技巧
  6. 如何制作bt种子文件
  7. 自定义MVC项目02
  8. spss因子分析结果解读_AMOS进行问卷分析中效度分析之验证因子分析教程 ——【杏花开生物医药统计】...
  9. 阿里大淘系模型治理阶段性分享
  10. 工作中用到的sh脚本(持续更新)