当前位置:   article > 正文

uView Swiper 轮播图_u-swiper标题

u-swiper标题

该组件一般用于导航轮播,广告展示等场景,可开箱即用,具有如下特点:

  • 自定义指示器模式,可配置指示器样式
  • 3D轮播图效果,满足不同的开发需求
  • 可配置显示标题,涵盖不同的应用场景
  • 具有设置加载状态和嵌入视频的能力,功能齐全丰富

#平台差异说明

App(vue)App(nvue)H5小程序

#基本使用

通过list参数传入轮播图列表值,该值为一个数组,键值为图片路径,例如:

  1. <template>
  2. <u-swiper
  3. :list="list1"
  4. @change="change"
  5. @click="click"
  6. ></u-swiper>
  7. </template>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. list1: [
  13. 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  14. 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  15. 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  16. ]
  17. }
  18. }
  19. }
  20. </script>

copy

#带标题

添加showTitle属性以展示标题,此时list的参数应为一个对象:例如:
(请注意:您期望使用对象作为参数时,需要配置u-swiper组件的keyName参数为您当前对象的图片key值)如:keyName="image"

  1. <template>
  2. <u-swiper
  3. :list="list2"
  4. keyName="image"
  5. showTitle
  6. :autoplay="false"
  7. circular
  8. ></u-swiper>
  9. </template>
  10. <script>
  11. export default {
  12. data() {
  13. return {
  14. list2: [{
  15. image: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  16. title: '昨夜星辰昨夜风,画楼西畔桂堂东',
  17. },{
  18. image: 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  19. title: '身无彩凤双飞翼,心有灵犀一点通'
  20. },{
  21. image: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  22. title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
  23. }],
  24. }
  25. }
  26. }
  27. </script>

copy

#带指示器

通过indicator属性添加指示器,例如:

  1. <template>
  2. <u-swiper
  3. :list="list3"
  4. indicator
  5. indicatorMode="line"
  6. circular
  7. ></u-swiper>
  8. </template>
  9. <script>
  10. export default {
  11. data() {
  12. return {
  13. list3: [
  14. 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  15. 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  16. 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  17. ],
  18. }
  19. }
  20. }
  21. </script>

copy

#加载中

通过添加loading属性达到加载中的状态,例如:
您也可以动态的来控制加载状态,比如::loading='loading'

  1. <template>
  2. <u-swiper
  3. :list="list3"
  4. loading
  5. ></u-swiper>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. list3: [
  12. 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  13. 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  14. 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  15. ],
  16. }
  17. }
  18. }
  19. </script>

copy

#嵌入视频

我们提供了嵌入视频的能力,为避免资源浪费,在您切换轮播的时候视频会停止播放,你可以设置poster指定视频封面,案例如下:

  1. <template>
  2. <u-swiper
  3. :list="list4"
  4. keyName="url"
  5. :autoplay="false"
  6. ></u-swiper>
  7. </template>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. list4: [{
  13. url: 'https://cdn.uviewui.com/uview/resources/video.mp4',
  14. title: '昨夜星辰昨夜风,画楼西畔桂堂东',
  15. poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png'
  16. },{
  17. url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  18. title: '身无彩凤双飞翼,心有灵犀一点通'
  19. },{
  20. url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  21. title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
  22. }],
  23. }
  24. }
  25. }
  26. </script>

copy

#指定类型 2.0.30

默认会根据链接自动判断swiper-item类型,但是在极端情况下可能会不准确,所以我们提供了指定item的类型,通过设置typevideoimage即可:

  1. <template>
  2. <u-swiper
  3. :list="list4"
  4. keyName="url"
  5. :autoplay="false"
  6. ></u-swiper>
  7. </template>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. list4: [{
  13. url: 'https://cdn.uviewui.com/uview/resources/video.mp4',
  14. title: '昨夜星辰昨夜风,画楼西畔桂堂东',
  15. poster: 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  16. type: 'video'
  17. },{
  18. url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  19. title: '身无彩凤双飞翼,心有灵犀一点通',
  20. type: 'image'
  21. },{
  22. url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  23. title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
  24. }],
  25. }
  26. }
  27. }
  28. </script>

copy

#自定义指示器

如您需要以指示点或数字形式来自定义指示器,请参考如下案例:

  1. <template>
  2. <view class="u-demo-block">
  3. <text class="u-demo-block__title">自定义指示器</text>
  4. <u-swiper
  5. :list="list5"
  6. @change="e => current = e.current"
  7. :autoplay="false"
  8. >
  9. <view
  10. slot="indicator"
  11. class="indicator"
  12. >
  13. <view
  14. class="indicator__dot"
  15. v-for="(item, index) in list5"
  16. :key="index"
  17. :class="[index === current && 'indicator__dot--active']"
  18. >
  19. </view>
  20. </view>
  21. </u-swiper>
  22. <u-gap
  23. bgColor="transparent"
  24. height="15"
  25. ></u-gap>
  26. <u-swiper
  27. :list="list6"
  28. @change="e => currentNum = e.current"
  29. :autoplay="false"
  30. indicatorStyle="right: 20px"
  31. >
  32. <view
  33. slot="indicator"
  34. class="indicator-num"
  35. >
  36. <text class="indicator-num__text">{{ currentNum + 1 }}/{{ list6.length }}</text>
  37. </view>
  38. </u-swiper>
  39. </view>
  40. </template>
  41. <script>
  42. export default {
  43. data() {
  44. return {
  45. list5: [
  46. 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  47. 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  48. 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  49. ],
  50. list6: [
  51. 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  52. 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  53. 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  54. ]
  55. }
  56. }
  57. }
  58. </script>
  59. <style lang="scss">
  60. .indicator {
  61. @include flex(row);
  62. justify-content: center;
  63. &__dot {
  64. height: 6px;
  65. width: 6px;
  66. border-radius: 100px;
  67. background-color: rgba(255, 255, 255, 0.35);
  68. margin: 0 5px;
  69. transition: background-color 0.3s;
  70. &--active {
  71. background-color: #ffffff;
  72. }
  73. }
  74. }
  75. .indicator-num {
  76. padding: 2px 0;
  77. background-color: rgba(0, 0, 0, 0.35);
  78. border-radius: 100px;
  79. width: 35px;
  80. @include flex;
  81. justify-content: center;
  82. &__text {
  83. color: #FFFFFF;
  84. font-size: 12px;
  85. }
  86. }
  87. </style>

copy

#卡片式轮播

在实际开发中,普通的轮播或许不能满足您的开发需求,swiper组件提供了卡片式轮播的api,您可以参考以下案例实现此功能

  1. <template>
  2. <!-- #ifndef APP-NVUE || MP-TOUTIAO -->
  3. <view class="u-demo-block">
  4. <text class="u-demo-block__title">卡片式</text>
  5. <u-swiper
  6. :list="list3"
  7. previousMargin="30"
  8. nextMargin="30"
  9. circular
  10. :autoplay="false"
  11. radius="5"
  12. bgColor="#ffffff"
  13. ></u-swiper>
  14. </view>
  15. <!-- #endif -->
  16. </template>
  17. <script>
  18. export default {
  19. data() {
  20. return {
  21. list3: [
  22. 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
  23. 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
  24. 'https://cdn.uviewui.com/uview/swiper/swiper1.png',
  25. ],
  26. }
  27. }
  28. }
  29. </script>

copy

#控制轮播效果

  • autoplay-是否自动轮播,默认为true
  • interval-前后两张图自动轮播的时间间隔
  • duration-切换一张轮播图所需的时间
  • circular-是否衔接滑动,即到最后一张时,是否可以直接转到第一张
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/251080
推荐阅读
相关标签
  

闽ICP备14008679号