1
1
<template >
2
2
<div class =" recommend" >
3
3
<scroll class =" recommend-content" :data =" discList" ref =" scroll" >
4
- <!-- 轮播 -->
5
- <!-- v-if: 确保slider中数据加载了,再执行slider组件mounted中dom操作 -->
6
- <div v-if =" recommends.length" class =" slider-wrapper" >
7
- <Slider >
8
- <div v-for =" (item, index) in recommends" :key =index >
9
- <a href =" javascript:;" >
10
- <!-- fastclick和scroll点击事件冲突:加类css属性 -->
11
- <img :src =" item.picUrl" @load =" loadImage" class =" needsclick" />
12
- </a >
13
- </div >
14
- </Slider >
15
- </div >
16
- <!-- 歌单列表 -->
17
- <div class =" recommend-list" >
18
- <h1 class =" list-title" >热门歌单推荐</h1 >
19
- <ul >
20
- <li v-for =" (item, index) in discList" :key =index class =" item" >
21
- <div class =" icon" >
22
- <img v-lazy =" item.imgurl" alt =" img" width =" 60" height =" 60" />
23
- </div >
24
- <div class =" text" >
25
- <h2 class =" name" v-html =" item.creator.name" ></h2 >
26
- <p class =" desc" >{{item.dissname}}</p >
4
+ <!-- div标签:解决列表挤到顶部无法调整位置 -->
5
+ <div >
6
+ <!-- 轮播 -->
7
+ <!-- v-if: 确保slider中数据加载了,再执行slider组件mounted中dom操作 -->
8
+ <div v-if =" recommends.length" class =" slider-wrapper" >
9
+ <Slider >
10
+ <div v-for =" (item, index) in recommends" :key =index >
11
+ <a href =" javascript:;" >
12
+ <!-- fastclick和scroll点击事件冲突:加类css属性 -->
13
+ <img :src =" item.picUrl" @load =" loadImage" class =" needsclick" />
14
+ </a >
27
15
</div >
28
- </li >
29
- </ul >
16
+ </Slider >
17
+ </div >
18
+ <!-- 歌单列表 -->
19
+ <div class =" recommend-list" >
20
+ <h1 class =" list-title" >热门歌单推荐</h1 >
21
+ <ul >
22
+ <li v-for =" (item, index) in discList" :key =index class =" item" >
23
+ <div class =" icon" >
24
+ <img v-lazy =" item.imgurl" alt =" img" width =" 60" height =" 60" />
25
+ </div >
26
+ <div class =" text" >
27
+ <h2 class =" name" v-html =" item.creator.name" ></h2 >
28
+ <p class =" desc" >{{item.dissname}}</p >
29
+ </div >
30
+ </li >
31
+ </ul >
32
+ </div >
33
+ </div >
34
+ <div class =" loading-container" v-show =" !discList.length" >
35
+ <loading ></loading >
30
36
</div >
31
37
</scroll >
38
+
32
39
</div >
33
40
</template >
34
41
@@ -37,12 +44,14 @@ import { getRecommend, getDiscList } from 'api/recommend'
37
44
import { ERR_OK } from ' api/config'
38
45
import Slider from ' base/slider/slider'
39
46
import Scroll from ' base/scroll/scroll'
47
+ import Loading from ' base/loading/loading'
40
48
41
49
export default {
42
50
name: ' Recommend' ,
43
51
components: {
44
52
Slider,
45
- Scroll
53
+ Scroll,
54
+ Loading
46
55
},
47
56
data () {
48
57
return {
@@ -127,4 +136,9 @@ export default {
127
136
color $color-text
128
137
.desc
129
138
color $color-text-d
139
+ .loading-container
140
+ position absolute
141
+ width 100%
142
+ top 50%
143
+ transform translateY (- 50% )
130
144
</style >
0 commit comments