微信小程序制作今日头条页面

这篇具有很好参考价值的文章主要介绍了微信小程序制作今日头条页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一:实验前准备

本文将手把手教你如何制作类似今日头条的页面,仅限于本地静态数据生成,无法从服务器获取数据进行同步。

微信小程序仿今日头条模板,微信小程序开发,微信小程序,小程序

1.先在微信小程序初始界面创建一个JS基础模板

微信小程序仿今日头条模板,微信小程序开发,微信小程序,小程序

2.将index文件夹里的文件逐个清空

微信小程序仿今日头条模板,微信小程序开发,微信小程序,小程序

3.将app.wxss文件清空

(目的是为了不妨碍接下来index.wxss的代码编写,否则会造成css继承导致出问题)

4.将实验所需要的图片导入(文件夹images可建可不建)

这里大家见仁见智导入自己喜欢的图片,可在阿里巴巴图标库中下载喜欢的Icon图标导入(免费下载),但需要在接下来的开发过程中晓得更改图片路径。

二:编写代码

1.index.json

{
  "usingComponents": {
  },
  "navigationBarTitleText": "今日头条",
  "navigationBarBackgroundColor": "#ff0000",
  "navigationBarTextStyle": "white"
}

 navigationBarTitleText改变微信小程序的标题,

navigationBarBackgroundColor改变微信小程序顶栏的颜色,

navigationBarTextStyle改变微信小程序标题的字体颜色。

2.index.wxml

<view class="container">  <!--最外层容器-->
    <view class="input">    <!--输入层容器-->
        <text>今日头条</text>
        <view class="packinput">    <!--搜索框容器-->
            <image src="/images/搜索.png"></image>
            <input placeholder="搜你想要的"/> 
        </view>
    </view>

    <view class="tabbar">   <!--选项栏容器-->
        <scroll-view scroll-x enable-flex style="flex-direction: row;">
        <block wx:for="{{items}}" wx:key="text">
            <block wx:if="{{curIndex==index}}">
                <button style="color: red;" data-index="{{index}}" bind:tap="shift">{{item.text}}                                </button>
            </block>
            <block wx:else>
                <button style="color: black;" data-index="{{index}}" bind:tap="shift">{{item.text}}</button>
            </block>
        </block>
        </scroll-view>
        <image src="/images/加号.png"></image>
    </view>

    <swiper class="swi" current="{{curIndex}}" bindchange="handleSwiperChange" style="height: 450px;">  <!--滑块视图容器-->
        <block wx:for="{{items}}" wx:for-item="itm" wx:key="text">
            <swiper-item item-id="{{index}}">   <!--单个视图页面-->
                <block wx:for="{{itm.infos}}" wx:key="title" wx:for-index="idx">
                    <view class="info">   <!--新闻信息容器-->
                        <text class="infoTitle">{{item.title}}</text>   <!--信息标题-->
                        <view class="infoImgs">     <!--信息图片-->
                            <block wx:for="{{item.img}}" wx:for-item="img" wx:key="src">
                                <image class="infoImage" src="{{img.src}}"></image>
                            </block>
                        </view>

                        <view class="infoDown">     <!--信息底部内容-->
                            <text class="infoName">{{item.name}}</text>
                            <text class="infoName">{{item.num}}评论</text>
                            <text class="infoName">{{item.time}}分钟之前</text>
                            <image class="infoDownImg" src="/images/关闭.png"></image>
                        </view>
                    </view> 
                </block>
            </swiper-item>
        </block>
    </swiper>
</view>

(1)输入层容器

微信小程序仿今日头条模板,微信小程序开发,微信小程序,小程序

(2)导航栏容器

微信小程序仿今日头条模板,微信小程序开发,微信小程序,小程序

标红的为当前页面,可左右滑动选择。但是加号按钮的功能暂未实现,请读者自行处理。

(3)滑动视图容器

微信小程序仿今日头条模板,微信小程序开发,微信小程序,小程序

相当于子页面,可左右滑动自由切换,也可点击选项进行切换。

值得一提的是,官方的swiper组件存在高度不兼容问题,只能展现少量页面。由于作者技术有限,本文采取了一种取巧的方法,直接定死了组件的高度,强制扩展,所以会出现少量问题,这里留给读者自行改进。

(4)新闻信息容器

微信小程序仿今日头条模板,微信小程序开发,微信小程序,小程序

包装了一条新闻信息,包含了新闻的标题,图片,发布公司,评论数,发布时间

3.index.js

Page({
  data: {
    curIndex:0,     //当前页面id
    items:[         //页面数据
        {
            text:"推荐",    //导航栏按钮文本
            infos:[     //新闻信息
                {
                    title:"推荐推荐推荐推荐",       //新闻标题
                    img:[       //新闻图片路径(自行更改)
                        {src:"/images/OIP-C.jpg"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"拉拉科技",    //新闻发布公司名
                    num:20,     //评论数
                    time:10     //发布时间
                },
                {
                    title:"啦啦啦啦啦啦啦啦啦啦啦",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"哇塞公司",
                    num:213,
                    time:43
                },
                {
                    title:"怎么了怎么了怎么了",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"怎么科技",
                    num:111,
                    time:12
                },
            ]
        },
        {
            text:"热点",
            infos:[
                {
                    title:"热点热点热点热点",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"热点科技",
                    num:76,
                    time:43
                }]
        },
        {
            text:"长沙",
            infos:[
                {
                    title:"长沙长沙长沙长沙",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"长沙科技",
                    num:66,
                    time:6
                }]
        },
        {
            text:"社会",
            infos:[
                {
                    title:"社会社会社会社会",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"社会科技",
                    num:32,
                    time:1
                }]
        },
        {
            text:"娱乐",
            infos:[
                {
                    title:"娱乐娱乐娱乐娱乐",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"娱乐科技",
                    num:345,
                    time:9
                }]
        },
        {
            text:"问答",
            infos:[
                {
                    title:"问答问答问答问答",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"问答科技",
                    num:654,
                    time:1
                }]
        },
        {
            text:"图片",
            infos:[
                {
                    title:"图片图片图片图片",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"图片公司",
                    num:363,
                    time:25
                }]
        },
        {
            text:"军事",
            infos:[
                {
                    title:"军事军事军事军事",
                    img:[
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                        {src:"/images/加号.png"},
                    ],
                    name:"军事集团",
                    num:777,
                    time:46
                }]
        }
    ],
    
  },
  shift(e) {        //导航栏点击触发逻辑
      this.setData({
        curIndex:e.target.dataset.index
      })
  },

  handleSwiperChange(e){        //滑动视图触发逻辑
      this.setData({
         curIndex:e.detail.current
      })
  }
})

index.js文件中存储页面的静态数据和页面触发逻辑。

curIndex为当前滑动视图页面id。

items为多个滑动视图的多个新闻信息。

shift(e)方法为点击导航栏文本按钮可触发滑动视图切换。

handleSwiperChange(e)方法为左右滑动视图可触发导航栏选中按钮的颜色变化。

4.index.wxss

/**index.wxss**/
page {      /**页面**/
  height: 100vh;
  display: flex;
  flex-direction: column;
}

.input{     /**输入层容器**/
  height: 40px;
  width: 100%;
  display: flex;
  flex-direction:row;
  flex-wrap: nowrap;
  gap: 20px;
  background-color: red;
  justify-content: center;
}

.packinput{     /**搜索框容器**/
  display: flex;
  flex-direction:row;
  flex-wrap: nowrap;
  gap: 10px;
  background-color: white;
  width: 200px;
  height: 30px;
  border-radius: 4px;
  align-items: center;
}

.input text{        /**输入文本**/
  color: white;
  font-weight: bold;
  font-size: larger;
}

.input input{       /**输入框**/
  background-color: white;
  
}

.input image{       /**输入框中的图片**/
  margin-left: 10px;
  width: 20px;
  height: 20px;
}

.tabbar{        /**导航栏容器**/
  width: 100%;
  height: 30px;
  background-color:rgb(236, 236, 236);
  display: flex;
  flex-direction:row;
  flex-wrap: nowrap;
}

.tabbar scroll-view{        /**导航栏滑动**/
  width: 90%;
  height: 30px;
  background-color:rgb(236, 236, 236);
  white-space: nowrap;
}

.tabbar button{     /**导航栏按钮**/
  background-color: unset;
  width: 50px;
  height: 30px;
  padding: 0 0 0 0;
  margin: unset;
  font-weight: thin;
  display: inline-block;
  font-size: medium;
  
}

.tabbar image{      /**导航栏图片**/
  width: 30px;
  height: 30px;
}

.swi{       /**滑动视图**/
    display: flex;
  flex-direction:column;
  flex-wrap: nowrap;
  
}

.info{      /**信息容器**/
    width: 100%;
    height: 150px;
    display: flex;
    flex-direction:column;
    flex-wrap: nowrap;
}

.infoTitle{     /**信息标题**/
    font-size: large;
    font-weight: bold;
    margin: 0 10px 0 10px;
}

.infoImgs{      /**信息图片容器**/
    display: flex;
    gap: 10px;
    height: 100px;
    margin: 0 10px 0 10px;
}

.infoImage{     /**信息图片**/
    height: 93px;
    
}

.infoDown{      /**信息底部**/
    display: flex;
    gap: 10px;
    margin: 0 10px 0 10px;
}

.infoName{      /**信息底部文本**/
    font-size: small;
}

.infoDownImg{       /**信息底部图片**/
    height: 16px;
    width: 30px;
    margin-left: 70px;
}

css文件中注释已注明作用,如若看不懂请先回去恶补一下知识点,这里不详细解释了。

四:结语

此代码仅仅只是一个类似今日头条页面的示例,实际操作将会从服务器上请求资源数据,以及有更加复杂的需求,这只能相当于一个丐版页面,我相信优秀的读者们可以在此基础上做到更好!

本文章源码下载地址:【免费】微信小程序类今日头条页面的源码资源-CSDN文库文章来源地址https://www.toymoban.com/news/detail-854439.html

到了这里,关于微信小程序制作今日头条页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序关于天气页面制作(第3章)

    一、制作天气微信小程序 1.先创建一个天气“weather”小程序 2.进入index.wxml、index.js、index.wxss文件,清空所有的内容,进入app.json文件, 修改导航栏标题为“中国天气网” 3.进入index.wxml文件,进行当天天气情况的界面布局,包括温度、最低温和最高温、 天气情况、城市、星期

    2024年02月09日
    浏览(43)
  • 微信小程序的页面制作---常用组件及其属性2

    在全局配置文件app.json中添加taBar配置,可实现标签栏配置。标签栏最少2个,最多5个 (1)如何配置标签栏? 1》先建多个文件,(以我的index,list,myform文件夹为例) 2》在app.json这个全局配置文件里面配置taBar,(必填taBar配置项——color、selectedColor、backgroundColor、list) 3》

    2024年04月13日
    浏览(43)
  • 微信小程序之WXSS模板样式、页面配置(.json)和网络数据请求

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好

    2024年01月24日
    浏览(62)
  • 今日头条小程序是什么

    今日头条小程序是什么

    2024年02月14日
    浏览(33)
  • 基于微信小程序的毕业设计题目(7)php旅游攻略小程(含开题报告、任务书、中期报告、答辩PPT、论文模板)

    目的 :本课题主要目标是设计并能够实现一个基于微信景区景点旅游攻略小程序系统,前台用户使用小程序,小程序使用微信开发者工具开发;后台管理使用基PP+MySql的B/S架构,开发工具使用phpstorm;通过后台添加景区景点信息,管理景区景点订单,管理评论等,用户通过小

    2024年02月09日
    浏览(55)
  • 微信小程序项目实例——今日美食

    项目代码见文字底部,点赞关注有惊喜 今日美食是为用户提供各种美食的制作方法,详细介绍了配料和制作流程 首页采用垂直布局,由 搜索栏、轮播图、宫格 三大组件组成 点击搜索栏将跳转到搜索界面,同时展示历史搜索内容 核心代码如下: 个人收藏界面是对用户的收藏

    2024年02月11日
    浏览(45)
  • 微信小程序开发---小程序的页面配置

    目录 一、小程序页面配置的作用 二、页面配置和全局配置的关系 三、页面配置中常用的配置项 在每个小程序中,每个页面都有自己的.json配置文件,用来对当前页面的窗口外观,页面效果进行配置。 小程序中,app.json中的windows节点,可以全局配置小程序中每个页面的窗口表

    2024年02月09日
    浏览(48)
  • uniapp(微信小程序/支付宝小程序) - 最新解决canavs绘制海报、二维码图片等不显示问题,在uniapp小程序开发中使用canavs制作base64图片在真机运行时空白不显示(详细解决方法)

    在uniapp微信小程序 | uniapp支付宝小程序中,详解canavs技术绘制图像后在真实手机上运行不显示的问题,解决uniapp安卓苹果ios运行小程序后二维码/海报无法加载和展示,完美解决兼容问题、图片太大画不出来、加载失败等。支持保存到相册中或长按保存。 很多教程都无效,本

    2024年04月25日
    浏览(53)
  • 今日餐饮美食推荐系统多商家 uniapp+vue微信小程序

    此今日美食推荐小程序信息的设计主要有两个用户,会员客户端和管理员服务端两个部分:会员客户主要功能; (1)会员信息:包括:会员注册、会员登录,包括对个人信息进行修改。 (2)大吃大喝:通过大吃大喝页面查看美食名称、菜系分类、图片、特色、商家名称、商

    2024年02月11日
    浏览(41)
  • 微信小程序开发教学系列(9)- 小程序页面优化

    在开发小程序时,页面性能优化是非常重要的一项任务。优化页面性能可以提升用户体验,使小程序更加流畅和高效。本章将介绍一些常见的页面优化方法和技巧,帮助您提升小程序的性能。 页面性能优化的目标是减少页面加载时间和提升页面渲染速度,从而提供更好的用户

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包