我是一个小菜鸡啊小菜鸡,但是小菜鸡要继续学新东西啊,新的一周加油吧!!!

文章目录

  • 配置动态路由
  • banner.vue
  • 公用图片画廊组件拆分
    • src下新建common文件夹
    • banner.vue中使用gallary组件
    • Gallary.vue
    • Gallary.vue和Banner.vue最外面大div分别添加点击事件

配置动态路由


新建detail文件夹 ,在Detail.vue中写一下基本内容


找到home文件夹下的Recommend.vue组件,需要在li标签上添加router-link声明式导航携带参数跳转页面

banner.vue

这里要注意的就是引入新的iconfont图标时候,需要把之前iconfont文件夹中的四个替换成新的,iconfont.css中其中有个url(base64)也复制换成新的,这样新下载的图标才会生成

在class名为banner-info上加一个渐变
background-image: linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.8));

<template><div class="banner"><imgclass="banner-img"src="//img1.qunarzz.com/sight/201406/23/57bf93474047fe36c8d65eac.jpg_600x330_76157d99.jpg"/><div class="banner-info"><div class="banner-title">大连圣亚海洋世界(AAAA景区)</div><div class="banner-number"><span class="iconfont banner-icon"></span>39</div></div></div>
</template><script>
export default {name: 'Banner'
}
</script><style lang="scss" scoped>
.banner {overflow: hidden;height: 0;padding-bottom: 50%;position: relative;.banner-img {width: 100%;}.banner-info {display: flex;position: absolute;left: 0;right: 0;bottom: 0;line-height: 0.6rem;color: #fff;background-image: linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.8));.banner-title {flex: 1;font-size: 0.32rem;padding: 0 0.2rem;}.banner-number {height: 0.4rem;line-height: 0.4rem;margin-top: 0.1rem;padding: 0 0.32rem;border-radius: 0.2rem;background: rgba(0, 0, 0, 0.6);font-size: 0.24rem;.banner-icon{margin-right: 0.1rem;}}}
}
</style>

公用图片画廊组件拆分

src下新建common文件夹

画廊组件可能以后别的页面也需要,就把它变成全局公用组件,src下新建common文件夹


去bulid文件夹下修改路径,修改完后记得重启服务器npm run dev,webpack的修改才会生效

banner.vue中使用gallary组件

Gallary.vue

需要加入轮播图
当时下载的是swiper3,所以去阅读swiper3的API文档
地址: https://3.swiper.com.cn/api/pagination/2016/0126/299.html
paginationType : 'fraction’这个属性使我们这次所需要的



for循环图片,父传子,子组件接收数组


banner.vue父组件传数据

浏览效果发现swiper出现了问题

问题原因:
一开始让common-gallary组件处于隐藏状态,再次显示出来的时候swiper计算的宽度会有些问题,导致轮播图无法正常滚动。

解决方法:
地址:https://3.swiper.com.cn/api/Observer/2015/0308/219.html
swiper插件只要监听到子组件或父组件Dom元素发生变化时,会自动的自我刷新一次,通过自我刷新就会解决swiper宽度计算问题

Gallary.vue和Banner.vue最外面大div分别添加点击事件


Gallary.vue

<template><div class="container" @click="handleGallaryClick"><div class="wrapper"><swiper :options="swiperOption"><swiper-slide v-for="(item, index) in imgs" :key="index"><img class="gallary-img" :src="item" /></swiper-slide><!-- 用于分页 --><div class="swiper-pagination" slot="pagination"></div></swiper></div></div>
</template><script>
export default {name: 'CommonGallary',props: {imgs: Array},data() {return {swiperOption: {pagination: '.swiper-pagination',paginationType: 'fraction',observer: true,observeParents: true}}},methods: {handleGallaryClick() {this.$emit('close')}}
}
</script><style lang="scss" scoped>
.container >>> .swiper-container {overflow: inherit;
}
.container {display: flex;flex-direction: column;justify-content: center;z-index: 99;position: fixed;top: 0;left: 0;right: 0;bottom: 0;background: #000;.wrapper {height: 0;width: 100%;padding-bottom: 100%;.gallary-img {width: 100%;}.swiper-pagination {color: #fff;bottom: -0.8rem;}}
}
</style>

Banner.vue

<template><div><div class="banner" @click="handleBannerClick"><imgclass="banner-img"src="//img1.qunarzz.com/sight/201406/23/57bf93474047fe36c8d65eac.jpg_600x330_76157d99.jpg"/><div class="banner-info"><div class="banner-title">大连圣亚海洋世界(AAAA景区)</div><div class="banner-number"><span class="iconfont banner-icon"></span>39</div></div></div><common-gallary :imgs="imgs" v-show="showGallay" @close="handleGallaryClose"></common-gallary></div>
</template><script>
import CommonGallary from 'common/gallary/Gallary'
export default {name: 'DetailBanner',data() {return {showGallay: false,imgs: ['http://img1.qunarzz.com/sight/p0/1503/b9/b9a4593c73228f9c.water.jpg_r_800x800_fa55893f.jpg','http://img1.qunarzz.com/sight/p0/1411/a3/a4fd8afc9123ba0e0253d80e473b2185.water.jpg_r_800x800_a9b4d0f2.jpg']}},methods:{handleBannerClick(){this.showGallay = true},handleGallaryClose (){this.showGallay = false}},components: {CommonGallary}}
</script><style lang="scss" scoped>
.banner {overflow: hidden;height: 0;padding-bottom: 50%;position: relative;.banner-img {width: 100%;}.banner-info {display: flex;position: absolute;left: 0;right: 0;bottom: 0;line-height: 0.6rem;color: #fff;background-image: linear-gradient(top,rgba(0, 0, 0, 0),rgba(0, 0, 0, 0.8));.banner-title {flex: 1;font-size: 0.32rem;padding: 0 0.2rem;}.banner-number {height: 0.4rem;line-height: 0.4rem;margin-top: 0.1rem;padding: 0 0.32rem;border-radius: 0.2rem;background: rgba(0, 0, 0, 0.6);font-size: 0.24rem;.banner-icon {margin-right: 0.1rem;}}}
}
</style>

十二、Vue项目 - 详情页动态路由、banner布局和公用图片画廊组件拆分相关推荐

  1. 七十三、Vue项目城市详细页的动态路由,Banner布局和公用图片画廊组件拆分

    2020/11/04. 周四.今天又是奋斗的一天. @Author:Runsen 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是共享的.大四弃算法转前端,需要每天的 ...

  2. iOS 开发商品详情页中的banner中点击查看图片

    本文出自code4app,原文地址:http://www.code4app.com/blog-... 轮翻播放与查看是分开的,轮翻是是用 开源的SDCycleScrollView 这里是给出的是查看的 ...

  3. vue 项目中,动态修改浏览器标签页的图标

    vue 项目中,动态修改浏览器标签页的图标 需求: 项目中有一个入口可以修改平台的名称和图标,图标同步展示为浏览器页签的图标 实现: 1.找到项目中的app.vue 文件,动态创建link标签,调用后 ...

  4. 商品详情页动态渲染系统:大型网站的多机房4级缓存架构设计

    124_大型电商网站的商品详情页的深入分析 之前,咱们也是说在讲解这个商品详情页系统的架构 缓存架构,高可用服务 商品详情页系统,我们只是抽取了其中一部分来讲解,而且还做了很大程度的简化 主要是为了用 ...

  5. VUE 项目落地页使用 LinkedME 深度链接服务跳回App

    VUE 项目落地页使用 LinkedME 深度链接服务跳回App 当前需求: 在微信或者浏览器中打开页面, 需要跳转回对应app: 当前实现技术: 使用 LinkedME 深度链接服务 实现流程: 1 ...

  6. JavaScript 编程精解 中文第三版 十二、项目:编程语言

    十二.项目:编程语言 原文:Project: A Programming Language 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了<JavaScript ...

  7. PMP 考点 第十二章 项目采购管理

    PMP 第十二章 项目采购管理 章节 序号 知识点 考点级别 备注 第十二章 项目采购管理 12.1 采购活动的职责和典型步骤.供方选择分析.采购管理计划.采购策略 3 12.2 合同类型.采购文件. ...

  8. IT项目管理总结:第十二章 项目采购管理

    第十二章 项目采购管理 项目采购管理的重要性 –外包的好处: A)获得技能和技术 B)降低固定和周期性成本 C)使客户组织集中在自己的核心业务上 D)提供灵活性 E)提高可追责性 –项目采购管理(Pr ...

  9. 信息系统项目管理师必背核心考点(六十二)项目组合治理主要过程

    科科过为您带来软考信息系统项目管理师核心重点考点(六十二)项目组合治理的主要过程,内含思维导图+真题 [信息系统项目管理师核心考点]项目组合治理的主要过程 1.注定项目组合管理计划 2.定义项目组合 ...

最新文章

  1. redis info命令中各个参数的含义
  2. 有一种惨:人还在,数据没了...
  3. WebFlux02 SpringBoot WebFlux项目骨架搭建
  4. linux数据库mysql的安装
  5. rds oracle,Amazon RDS Oracle数据库托管
  6. 【Python】修改pip默认缓存位置
  7. 赣南师范大学科技学院计算机科学与技术,2021江西独立学院转设最新消息(新增两所):赣南师范大学科技学院转设公办?...
  8. 基于springboot的社区物业系统
  9. linux卸载keystone服务,OpenStack —— 认证服务Keystone(二)
  10. Python3学习笔记-字符串和字符串操作
  11. 【056】历史性突破!翼辉信息助力星际荣耀火箭入轨!
  12. 香槟分校计算机研究生专业,伊利诺伊大学香槟分校计算机科学专业各大方向介绍...
  13. 怎么把mov转换为mp4?
  14. 期货客户开户手续费(期货开户最低手续费)
  15. 【Henu ACM Round#19 B】 Luxurious Houses
  16. ORA -09925
  17. 十月,再见;你好,十一月
  18. hadoop3.X 和 Hadoop 2.X的web端口号访问
  19. 分治法——循环赛事日程表
  20. 外挂制作--------过NP技术渐渐

热门文章

  1. HPP(Hosted Payment Page)支付模式
  2. 2022年全球市场Type-C USB网络摄像头总体规模、主要生产商、主要地区、产品和应用细分研究报告
  3. 江苏大学计算机学院复试题,本部基础A定稿-含答案(江苏大学计算机).doc
  4. windows中 FFmpeg 配置libx264 遇到的坑和解决办法
  5. 英文版-中英歌词字幕-神羔羊配得-《Worthy Is the Lamb》
  6. 如何在供应链金融中防范风险?
  7. ios打包ipa 命令安装ipa到iphone
  8. 【热门收藏】iOS开发人员必看的精品资料(100个)
  9. Linux Centos8 安装Minio开机启动并Nginx代理访问
  10. matlab论文致谢,大学毕业论文致谢信3篇