区块链技术博客
www.b2bchain.cn

vue实战 实现视频类webapp:(九) 视频列表点赞评论分享求职学习资料

本文介绍了vue实战 实现视频类webapp:(九) 视频列表点赞评论分享求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

本节包含如下内容:

  • vue 中img标签路径处理
  • vue 中动态样式处理
  • 视频列表 右侧点赞评论分享实现

最终效果

vue实战 实现视频类webapp:(九) 视频列表点赞评论分享

vue 中img标签路径处理

  • 1 可以使用require将图片作为模块加载进去,用了require,就是将图片当成模块先引进来,再绑定
<img :src="require('../../assets/images/classic.jpg')" alt="picture">
  • 2 当需要实现动态加载图片的时候就需要传一个变量给require,但是require中不能直接赋值一个变量,可以用以下方法
 <img :src="require('../../assets/images/'+item.url+'.jpg')" alt="picture">
  • 3 impport方法
 import imgURL from '../../assets/images/classic.jpg'; <img src={imgURL } />
  • 产生如上问题的原因
    • 在webpack中会将图片来当做模块来用
    • url-loader将直接将:src=” ‘../../assets/images/’+item.url+’.jpg’ “解析成字符串,因为是动态加载的,所有无法解析图片地址
    • 然后npm run dev 或者npm run build之后导致路径没有被加工【被webpack解析到的路径都会被解析为/static/img/[filename].png,完整地址为localhost:8080/static/img/[filename].png】

创建点赞评论分享组件实现

  • 在 src/common/components/index 文件夹下新建 RightBar.vue
  • 难点在css布局
  • img 图片路径处理
<template>   <div class="right-bar">     <div class="rightbar-item">       <div class="avatar-border">         <img src="~assets/img/avatar.png" style="width: 40px;height: 40px; border-radius: 50%"              alt="">         <span class="iconfont icon-jia"               style="color:#FE2C5A;position: absolute;left: 15px;bottom: -12px;font-size: 20px"></span>       </div>     </div>     <div class="item-icon">       <span class="iconfont icon-xin"></span>       <p>95.9w</p>     </div>     <div class="item-icon" >       <span class="iconfont icon-pinglun"></span>       <p>285</p>     </div>     <div class="item-icon">       <span class="iconfont icon-zhuanfa"></span>       <p>3027</p>     </div>     <div class="rightbar-item">       <div class="right-music">         <img src="~assets/img/music_avatar.png"              style="width: 30px;height: 30px;border-radius: 50%">       </div>     </div>   </div> </template>  <script> export default {   name: 'RightBar',   methods: {   }, }; </script>  <style lang="less" scoped>   .right-bar {     display: flex;     width: 70px;     flex-direction: column;     .rightbar-item {       height: 70px;       width: 100%;       display: flex;       justify-content: center;       align-content: center;       padding-bottom: 10px;     }      .avatar-border {       width: 50px;       height: 50px;       border-radius: 50%;       background-color: #fff;       position: relative;       text-align: center;       display: flex;       justify-content: center;       align-items: center;     }      .item-icon {       height: 60px;       text-align: center;       padding-bottom: 10px;     }      .iconfont {       color: #ffffff;       font-size: 30px;     }      p {       color: #ffffff;       font-size: 14px;       padding: 0px;       margin: 5px 0 0 0;     }      .right-music {       height: 54px;       line-height: 54px;       width: 54px;       background: #2e2e2e;       border-radius: 50%;       display: flex;       align-items: center;       justify-content: center;     }   } </style>

实现的效果

vue实战 实现视频类webapp:(九) 视频列表点赞评论分享

实现唱片旋转效果

  • css3 keyframes 实现旋转动画
  • 代码如下
    “` javascript

本节包含如下内容:

  • vue 中img标签路径处理
  • vue 中动态样式处理
  • 视频列表 右侧点赞评论分享实现

最终效果

vue实战 实现视频类webapp:(九) 视频列表点赞评论分享

vue 中img标签路径处理

  • 1 可以使用require将图片作为模块加载进去,用了require,就是将图片当成模块先引进来,再绑定
<img :src="require('../../assets/images/classic.jpg')" alt="picture">
  • 2 当需要实现动态加载图片的时候就需要传一个变量给require,但是require中不能直接赋值一个变量,可以用以下方法
 <img :src="require('../../assets/images/'+item.url+'.jpg')" alt="picture">
  • 3 impport方法
 import imgURL from '../../assets/images/classic.jpg'; <img src={imgURL } />
  • 产生如上问题的原因
    • 在webpack中会将图片来当做模块来用
    • url-loader将直接将:src=” ‘../../assets/images/’+item.url+’.jpg’ “解析成字符串,因为是动态加载的,所有无法解析图片地址
    • 然后npm run dev 或者npm run build之后导致路径没有被加工【被webpack解析到的路径都会被解析为/static/img/[filename].png,完整地址为localhost:8080/static/img/[filename].png】

创建点赞评论分享组件实现

  • 在 src/common/components/index 文件夹下新建 RightBar.vue
  • 难点在css布局
  • img 图片路径处理
<template>   <div class="right-bar">     <div class="rightbar-item">       <div class="avatar-border">         <img src="~assets/img/avatar.png" style="width: 40px;height: 40px; border-radius: 50%"              alt="">         <span class="iconfont icon-jia"               style="color:#FE2C5A;position: absolute;left: 15px;bottom: -12px;font-size: 20px"></span>       </div>     </div>     <div class="item-icon">       <span class="iconfont icon-xin"></span>       <p>95.9w</p>     </div>     <div class="item-icon" >       <span class="iconfont icon-pinglun"></span>       <p>285</p>     </div>     <div class="item-icon">       <span class="iconfont icon-zhuanfa"></span>       <p>3027</p>     </div>     <div class="rightbar-item">       <div class="right-music">         <img src="~assets/img/music_avatar.png"              style="width: 30px;height: 30px;border-radius: 50%">       </div>     </div>   </div> </template>  <script> export default {   name: 'RightBar',   methods: {   }, }; </script>  <style lang="less" scoped>   .right-bar {     display: flex;     width: 70px;     flex-direction: column;     .rightbar-item {       height: 70px;       width: 100%;       display: flex;       justify-content: center;       align-content: center;       padding-bottom: 10px;     }      .avatar-border {       width: 50px;       height: 50px;       border-radius: 50%;       background-color: #fff;       position: relative;       text-align: center;       display: flex;       justify-content: center;       align-items: center;     }      .item-icon {       height: 60px;       text-align: center;       padding-bottom: 10px;     }      .iconfont {       color: #ffffff;       font-size: 30px;     }      p {       color: #ffffff;       font-size: 14px;       padding: 0px;       margin: 5px 0 0 0;     }      .right-music {       height: 54px;       line-height: 54px;       width: 54px;       background: #2e2e2e;       border-radius: 50%;       display: flex;       align-items: center;       justify-content: center;     }   } </style>

实现的效果

vue实战 实现视频类webapp:(九) 视频列表点赞评论分享

实现唱片旋转效果

  • css3 keyframes 实现旋转动画
  • 代码如下
    “` javascript

本节包含如下内容:

  • vue 中img标签路径处理
  • vue 中动态样式处理
  • 视频列表 右侧点赞评论分享实现

最终效果

vue实战 实现视频类webapp:(九) 视频列表点赞评论分享

vue 中img标签路径处理

  • 1 可以使用require将图片作为模块加载进去,用了require,就是将图片当成模块先引进来,再绑定
<img :src="require('../../assets/images/classic.jpg')" alt="picture">
  • 2 当需要实现动态加载图片的时候就需要传一个变量给require,但是require中不能直接赋值一个变量,可以用以下方法
 <img :src="require('../../assets/images/'+item.url+'.jpg')" alt="picture">
  • 3 impport方法
 import imgURL from '../../assets/images/classic.jpg'; <img src={imgURL } />
  • 产生如上问题的原因
    • 在webpack中会将图片来当做模块来用
    • url-loader将直接将:src=” ‘../../assets/images/’+item.url+’.jpg’ “解析成字符串,因为是动态加载的,所有无法解析图片地址
    • 然后npm run dev 或者npm run build之后导致路径没有被加工【被webpack解析到的路径都会被解析为/static/img/[filename].png,完整地址为localhost:8080/static/img/[filename].png】

创建点赞评论分享组件实现

  • 在 src/common/components/index 文件夹下新建 RightBar.vue
  • 难点在css布局
  • img 图片路径处理
<template>   <div class="right-bar">     <div class="rightbar-item">       <div class="avatar-border">         <img src="~assets/img/avatar.png" style="width: 40px;height: 40px; border-radius: 50%"              alt="">         <span class="iconfont icon-jia"               style="color:#FE2C5A;position: absolute;left: 15px;bottom: -12px;font-size: 20px"></span>       </div>     </div>     <div class="item-icon">       <span class="iconfont icon-xin"></span>       <p>95.9w</p>     </div>     <div class="item-icon" >       <span class="iconfont icon-pinglun"></span>       <p>285</p>     </div>     <div class="item-icon">       <span class="iconfont icon-zhuanfa"></span>       <p>3027</p>     </div>     <div class="rightbar-item">       <div class="right-music">         <img src="~assets/img/music_avatar.png"              style="width: 30px;height: 30px;border-radius: 50%">       </div>     </div>   </div> </template>  <script> export default {   name: 'RightBar',   methods: {   }, }; </script>  <style lang="less" scoped>   .right-bar {     display: flex;     width: 70px;     flex-direction: column;     .rightbar-item {       height: 70px;       width: 100%;       display: flex;       justify-content: center;       align-content: center;       padding-bottom: 10px;     }      .avatar-border {       width: 50px;       height: 50px;       border-radius: 50%;       background-color: #fff;       position: relative;       text-align: center;       display: flex;       justify-content: center;       align-items: center;     }      .item-icon {       height: 60px;       text-align: center;       padding-bottom: 10px;     }      .iconfont {       color: #ffffff;       font-size: 30px;     }      p {       color: #ffffff;       font-size: 14px;       padding: 0px;       margin: 5px 0 0 0;     }      .right-music {       height: 54px;       line-height: 54px;       width: 54px;       background: #2e2e2e;       border-radius: 50%;       display: flex;       align-items: center;       justify-content: center;     }   } </style>

实现的效果

vue实战 实现视频类webapp:(九) 视频列表点赞评论分享

实现唱片旋转效果

  • css3 keyframes 实现旋转动画
  • 代码如下
    “` javascript

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » vue实战 实现视频类webapp:(九) 视频列表点赞评论分享求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们