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

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 君莫叹:微信小程序实战尝鲜:今日头条(附代码)

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:511

HTML5自适应律师工作室类网

2020-04-04   浏览:505

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

君莫叹:微信小程序实战尝鲜:今日头条(附代码)

发布时间:2020-12-10  

微信小程序在近期比较火热,作者在闲暇之余研究后决定做一个今日头条的小demo。

君莫叹:微信小程序实战尝鲜:今日头条(附代码)

君莫叹:微信小程序实战尝鲜:今日头条(附代码)

首先感谢此作者的接口提供。

首页的开发过程。

首先在app.json中配置每个页面

{ "pages":[ "pages/index/index", "pages/attention/attention", "pages/mine/mine", "pages/video/video" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#d75b5d", "navigationBarTitleText": "今日头条", "navigationBarTextStyle":"white" }, "tabBar": { "color": "#959394", "selectedColor": "#959394", "backgroundColor": "#f0f0f0", "borderStyle": "white", "list": [{ "pagePath": "pages/index/index", "iconPath":"imges/tabbar/home_tabbar_22x22_.png", "selectedIconPath":"imges/tabbar/home_tabbar_press_22x22_@2x.png", "text": "首页" }, { "pagePath": "pages/video/video", "iconPath":"imges/tabbar/video_tabbar_22x22_.png", "selectedIconPath":"imges/tabbar/video_tabbar_press_22x22_@2x.png", "text": "视频" },{ "pagePath": "pages/attention/attention", "iconPath":"imges/tabbar/newcare_tabbar_night_22x22_.png", "selectedIconPath":"imges/tabbar/newcare_tabbar_press_22x22_@2x.png", "text": "关注" },{ "pagePath": "pages/mine/mine", "iconPath":"imges/tabbar/mine_tabbar_22x22_.png", "selectedIconPath":"imges/tabbar/mine_tabbar_press_22x22_@2x.png", "text": "我的" }] } }

随后我们创建导航条。
布局:运用盒型布局即可。
思路:由于这个有动画效果,当时的想法是利用js来控制动画效果,配合微信的wx.createAnimation(OBJECT)来创建动画并且实现,当我点击当前的按钮的时候,用js来控制其大小变化,当我点击其他按钮的时候,遍历所有按钮然后设当前的按钮为变大状态,其他则缩小。但是在实现的时候发现在数据源用的是微信中数据绑定的形式渲染的,当前的按钮变大后其他按钮都随之变化,控制较难,所以作者放弃了这种思路

最终思路: 利用css3动画配合一个Bool值来使当前的视图发生变化。

使用<scroll-view scroll-x="true" scroll-y="false" class="tpscview" scroll-left="-2">来对导航条进行横向设置。

使用BOOL型数据animation来控制当前的状态。

使用css3代码来控制动画

.curPage { animation:myfirst 0.1s; animation-fill-mode:forwards; } @keyframes myfirst { to { font-size: 50rpx; } }

3. 获取内容

作者封装了以下网络接口首先初始化数据端。

import { device_id, iid, BASE_URL, } from "./constant.js" var net = require("./netLoad.js"); function fetchHeadName(){ let url = BASE_URL + "article/category/get_subscribed/v1/?" let params = {"device_id": device_id,"aid": 13,"iid": iid} return net.fetchApi(url, params, "GET").then(data=>data) } function loadHomeCategoryNewsFeed(category){ let url = BASE_URL + "api/news/feed/v39/?" let params = {"device_id": device_id,"category": category,"iid": iid} return net.fetchApi(url,params,"GET").then(data=>data); } function loadHomeCategoryMoreNewsFeed(category, lastRefreshTime){ let url = BASE_URL + "api/news/feed/v39/?" let params = {"device_id": device_id, "category": category, "iid": iid, "last_refresh_sub_entrance_interval": lastRefreshTime} return net.fetchApi(url, params, "GET").then(data=>data); } export { fetchHeadName, loadHomeCategoryNewsFeed, loadHomeCategoryMoreNewsFeed }