vue.js项目实战运用篇之抖音视频APP-第十四节: 消息页面功能

Posted enjsky.G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue.js项目实战运用篇之抖音视频APP-第十四节: 消息页面功能相关的知识,希望对你有一定的参考价值。

【温馨提示】:若想了解更多关于本次项目实战内容,可转至vue.js项目实战运用篇之抖音视频APP-项目规划中进一步了解项目规划。

【项目地址】
项目采用Git进行管理,最终项目将会发布到GitHub中,感兴趣的小伙伴们可以一起学习,共同完善本项目。
项目地址:GitHub


第十四节: 消息页面功能

功能分析

消息页面功能是底部导航中的导航功能页面,包含系统消息、互动消息等内容。

消息功能实现

1.页面布局,代码如下:

<template>
  <!-- 消息模块 -->
  <div class="message">
    <Header title="消息" has-right="true" right-txt="创建群聊 "></Header>
    <div class="msg-wrap">
      <!-- 消息搜索 -->
      <div class="msg_search">
        <!-- 图标 -->
          <div class="search_i"><i class="iconfont icon-icon_search"></i></div>
          <div class="search_input">
            <span>搜索</span>
          </div>
      </div>
      <!-- 消息类型列表 -->
      <div class="msg_type_list">
        <ul>
          <li class="msg_item">
            <!-- 消息图标 -->
            <div class="msg_item_icon fensi">
              <i class="iconfont icon-fensi-01"></i>
            </div>
            <!-- 消息内容 -->
            <div class="msg_item_content">
              <!-- 消息左侧文本内容 -->
              <div class="content_left">
                <span class="content_left_title">粉丝</span>
                <span class="content_left_head">小豆豆关注了你</span>
              </div>
              <!-- 右侧图标 -->
              <div class="content_right">
                <i class="iconfont icon-youce"></i>
              </div>
            </div>
          </li>
          <li class="msg_item">
            <!-- 消息图标 -->
            <div class="msg_item_icon hudong">
              <i class="iconfont icon-biaoqiankuozhan_hudong-189"></i>
            </div>
            <!-- 消息内容 -->
            <div class="msg_item_content">
              <!-- 消息左侧文本内容 -->
              <div class="content_left">
                <span class="content_left_title">互动消息</span>
                <span class="content_left_head">深圳第二教室笛子小王子回复了你的评论</span>
              </div>
              <!-- 右侧图标 -->
              <div class="content_right">
                <i class="iconfont icon-youce"></i>
              </div>
            </div>
          </li>
          <li class="msg_item">
            <!-- 消息图标 -->
            <div class="msg_item_icon tongzhi">
              <i class="iconfont icon-tongzhi"></i>
            </div>
            <!-- 消息内容 -->
            <div class="msg_item_content">
              <!-- 消息左侧文本内容 -->
              <div class="content_left">
                <span class="content_left_title">系统通知</span>
                <span class="content_left_head">抖音直播 2021-05-21</span>
              </div>
              <!-- 右侧图标 -->
              <div class="content_right">
                <!-- <i class="iconfont icon-youce"></i> -->
              </div>
            </div>
          </li>
          <li class="msg_item">
            <!-- 消息图标 -->
            <div class="msg_item_icon xiaoxi">
              <i class="iconfont icon-xiaoxi"></i>
            </div>
            <!-- 消息内容 -->
            <div class="msg_item_content">
              <!-- 消息左侧文本内容 -->
              <div class="content_left">
                <span class="content_left_title">商家服务通知</span>
                <span class="content_left_head">成功添加心愿单.2021-05-21</span>
              </div>
              <!-- 右侧图标 -->
              <div class="content_right">
                <!-- <i class="iconfont icon-youce"></i> -->
              </div>
            </div>
          </li>
          <li class="msg_item">
            <!-- 消息图标 -->
            <div class="msg_item_icon tongxunlu">
              <i class="iconfont icon-tongxunlu"></i>
            </div>
            <!-- 消息内容 -->
            <div class="msg_item_content">
              <!-- 消息左侧文本内容 -->
              <div class="content_left">
                <span class="content_left_title">查看通讯录朋友</span>
                <span class="content_left_head">看看有谁在抖音</span>
              </div>
              <!-- 右侧图标 -->
              <div class="content_right">
                <i class="iconfont icon-youce"></i>
              </div>
            </div>
          </li>
        </ul>
      </div>
    </div>
  </div>
</template>

【温馨提示】这里使用了Header组件布局头部标题。
2.样式,如下:

<style lang="less" scoped>
.message {
  height: 100%;
  .msg-wrap {
    height: 568px;
    padding: 0 20px;
    color: #ffffff;
    // background-color: #101821;
    .msg_search
    {
      height: 45px;
      display: flex;
      justify-content: flex-start;
      align-items: center;
      background: #3A3A44;
      margin: 10px 0;
      border-radius: 5px;
      .search_i
      {
        padding: 0 10px;
        .iconfont{
          font-size: 18px;
          color: #95959F;
        }
      }
      .search_input
      {
        span{
          font-size: 15px;
          color: #95959F;
        }
      }
    }
    // 消息列表
    .msg_type_list{
      border-top: 1px solid #1E202C;
      .msg_item{
        display: flex;
        justify-content: flex-start;
        align-items: center;
        margin: 10px 0;
        .msg_item_icon{
          width: 60px;
          height: 60px;
          border-radius: 50%;
          margin: 0 5px;
          .iconfont{
            font-size: 35px;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 10px;
            color: #DDE8FF;
          }
        }
        // 粉丝
        .fensi{
          background: #5DA1F7;
        }
        // 互动
        .hudong{
          background: #F967A7;
        }
        // 通知
        .tongzhi{
          background: #FC2C5C;
        }
        // 消息
        .xiaoxi{
          background: #5C90F7;
        }
        // 通讯录
        .tongxunlu{
          background: #232531;
        }
        .msg_item_content{
              height: 80px;
              width: 275px;
              display: flex;
              justify-content: space-between;
              align-items: center;
              border-bottom: 1px solid #1E202C;
          .content_left{
            display: flex;
            flex-direction: column;
            margin: 10px;
            .content_left_title{
              font-size: 18px;
              padding: 5px 0;
            }
            .content_left_head{
              font-size: 15px;
              white-space: nowrap;
              text-overflow: ellipsis;
              overflow: hidden;
              word-break: break-all;
              width: 140px;
              color: #898B97;
            }
          }
          .content_right{
            .iconfont{
              font-size: 15px;
              color: #E4E5E5;
            }
          }
        }
      }
    }
  }
}
</style>

【温馨提示】这里使用了css3flex盒子模型进行布局。
3.完成效果:
在这里插入图片描述

结束语

本章节主要介绍了消息页面功能等相关内容,若有疑问或不足之处,欢迎留言讨论。

项目仓库

项目采用Git进行管理,最终项目将会发布到GitHub中,感兴趣的小伙伴们可以一起学习讨论,共同完善本项目。
项目地址:GitHub


上一篇:Header组件功能

以上是关于vue.js项目实战运用篇之抖音视频APP-第十四节: 消息页面功能的主要内容,如果未能解决你的问题,请参考以下文章

vue.js项目实战运用篇之抖音视频APP-第十五节: 朋友页面功能

vue.js项目实战运用篇之抖音视频APP-第十五节: 朋友页面功能

vue.js项目实战运用篇之抖音视频APP-第十五节: 朋友页面功能

vue.js项目实战运用篇之抖音视频APP-第十节: 评论列表功能

vue.js项目实战运用篇之抖音视频APP-第十节: 评论列表功能

vue.js项目实战运用篇之抖音视频APP-第十三节: Header组件功能