BLiveItem.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <template>
  2. <div class="lv-item">
  3. <a class="lv-preview">
  4. <img :src="live.pic">
  5. <div class="lv-mask">
  6. <div class="lv-face">
  7. <img :src="live.face" style="opacity: 1;">
  8. </div>
  9. <span class="lv-onair-txt"><i class="lv-onair-icon"></i>Live
  10. </span>
  11. </div>
  12. <span class="b-tag">{{live.areaName}}</span>
  13. </a>
  14. <a :href="live.link" target="_blank">
  15. <div class="lv-room">
  16. <div class="lv-t" :title="live.title">{{live.title}}</div>
  17. </div>
  18. <div class="lv-info">
  19. <div class="lv-host">
  20. <i class="b-icon b-icon-live-host">
  21. </i>{{live.uname}}
  22. </div>
  23. <div class="lv-online">
  24. <i class="b-icon b-icon-live-online"></i>{{live.online}}
  25. </div>
  26. </div>
  27. </a>
  28. </div>
  29. </template>
  30. <script>
  31. export default {
  32. props: {
  33. live: {
  34. type: Object
  35. }
  36. }
  37. }
  38. </script>
  39. <style lang="stylus" scoped>
  40. .lv-item
  41. width 160px
  42. .lv-preview
  43. width 160px
  44. height 100px
  45. display block
  46. position relative
  47. img
  48. display block
  49. width 100%
  50. height 100%
  51. margin 0 auto
  52. border-radius 4px
  53. .lv-mask
  54. position absolute
  55. width 100%
  56. height 100%
  57. top 0px
  58. left 0px
  59. z-index 1
  60. opacity 0
  61. visibility hidden
  62. transition .2s all linear
  63. border-radius 4px
  64. background rgba(0,0,0,0.5)
  65. .lv-face
  66. position absolute
  67. width 48px
  68. height 48px
  69. top 26px
  70. left 24px
  71. border-radius 60px
  72. overflow hidden
  73. img
  74. display block
  75. margin 0 auto
  76. border-radius 4px
  77. width 100%
  78. height 100%
  79. .lv-onair-txt
  80. display inline-block
  81. position absolute
  82. left 88px
  83. top 40%
  84. height 20px
  85. line-height 20px
  86. width 48px
  87. border-radius 20px
  88. background-color #00a1d6
  89. color #fff
  90. .lv-onair-icon
  91. display inline-block
  92. width 6px
  93. height 6px
  94. border-radius 3px
  95. background-color #fff
  96. margin 8px 3px 0 7px
  97. vertical-align top
  98. .b-tag
  99. display inline-block
  100. position absolute
  101. right 0
  102. bottom 0
  103. padding 0 5px
  104. height 20px
  105. line-height 20px
  106. border-radius 4px 0 0
  107. color #fff
  108. background-color rgba(0,0,0,0.5)
  109. transition .2s all linear
  110. .lv-room
  111. position relative
  112. padding-top 8px
  113. min-height 16px
  114. z-index 3
  115. .lv-t
  116. height 16px
  117. min-width 105px
  118. white-space nowrap
  119. text-overflow ellipsis
  120. overflow hidden
  121. color #222
  122. line-height 16px
  123. transition .2s all linear
  124. .lv-info
  125. padding-top 8px
  126. width 160px
  127. .lv-host, .lv-online
  128. display inline-block
  129. vertical-align top
  130. color #99a2aa
  131. white-space nowrap
  132. text-overflow ellipsis
  133. overflow hidden
  134. line-height 16px
  135. .lv-host
  136. width 75px
  137. .lv-online
  138. width 75px
  139. margin-left 5px
  140. .b-icon
  141. background url(../../assets/images/icons.png) no-repeat
  142. vertical-align top
  143. margin-top 3px
  144. margin-right 5px
  145. display inline-block
  146. width 12px
  147. height 12px
  148. &.b-icon-live-host
  149. background-position -282px -154px
  150. &.b-icon-live-online
  151. background url(../../assets/images/live-eye.png)
  152. &:hover .lv-mask
  153. opacity 1
  154. visibility visible
  155. &:hover .lv-preview:hover .b-tag
  156. opacity 0
  157. &:hover .lv-t
  158. height 50px
  159. white-space initial
  160. color #00a1d6
  161. </style>