详情页面开发的重难点
-
- 解决使用router-link导致的字体变色问题
- 使用动态路由跳转页面
- 实现Banner背景的从上到下的渐变色
- 实现点击banner图,弹出一个画廊组件(图片的轮播)
- 实现页面滑动至离顶部60时,出现Header组件
- 实现Header组件的渐隐渐现动画效果
- 解绑全局事件
- 使用递归组件实现详情页列表
- 使用z-index解决下滑时header的显示,使之可以覆盖页面内容
- 使用ajax获取动态数据
- 解决页面重新加载时,页面没有重新发送ajax请求的方法
- 拖动页面后,跳转到其他页面时页面到顶部的距离互相影响的解决方法
- 在使用了exclude="Detail" 后,Detail中activated失效问题解决办法:
- 使用transition动画,在画廊组件加入渐隐渐现的效果
解决使用router-link导致的字体变色问题
使用router-link总会因为这个是一个a标签而使字体变颜色。解决方法是:将router-link当做<li>
标签来用:
<router-link tag="li" class="item border-bottom" v-for="item of list" :key="item.id" :to="'/detail/' + item.id">
使用动态路由跳转页面
{
// 动态路由
path: '/detail/:id',
name: 'Detail',
component: Detail
}
后面的id对应着相应的景点详情id。
实现Banner背景的从上到下的渐变色
background-image: linear-gradient(top, rgba(0, 0, 0, 0) ,rgba(0, 0, 0, 0.8))
实现点击banner图,弹出一个画廊组件(图片的轮播)
将该画廊组件设置为公用组件,因为很多页面将要用到。
- 将图片撑出一个正方形的方法:宽度设置为100%,height为0,并且设置padding-bottom或者padding-top为100%即可实现一个正方形:
/* 撑出一个正方形 */
height: 0
width: 100%
padding-bottom: 100%
- 实现图片自适应:
width:100%
- 使用vue-awesome-swiper实现图片的轮播效果
借鉴Swiper的API文档Swiper文档
然后,设置分页器类型为:‘fraction’ 分式 。 - 设置v-show来决定画廊组件是否出现,并且绑定图片的点击事件。
- 编写完毕,出现了轮播图滚动的问题,这是由于:最开始common-gallery处于隐藏的状态,展示出来时,swiper计算宽度有些问题,导致无法正常滚动。
解决方法:
(1)加入Observer:启动动态检查器(OB/观众/观看者),当改变swiper的样式(例如隐藏/显示)或者修改swiper的子元素时,自动初始化swiper。
默认false,不开启,可以使用update()方法更新。
(2)加入observeParents:将observe应用于Swiper的父元素。当Swiper的父元素变化时,例如window.resize,Swiper更新。
swiper的配置代码为:
swiperOption: {
pagination: '.swiper-pagination'