美文网首页
页面整页轮播切换及内部嵌套内容轮播

页面整页轮播切换及内部嵌套内容轮播

作者: 北风吹_yfy | 来源:发表于2020-02-24 10:01 被阅读0次

移动端页面,所以选择了Vant组件库,轮播部分用Swipe 轮播。

  • 安装:
# 通过 npm 安装
npm i vant -S

# 通过 yarn 安装
yarn add vant
  • 引入:
import Vue from 'vue';
import { Swipe, SwipeItem } from 'vant';

Vue.use(Swipe);
Vue.use(SwipeItem);

用法:

<van-swipe 
     :style="{height:screenHeight}"
      @change="onChange"
      :loop="false"
      :stop-propagation="false"
      :show-indicators="false"
      vertical
      ref="swipe"
      :touchable="isScroll"
>
  <van-swipe-item>1</van-swipe-item>
  <van-swipe-item>2</van-swipe-item>
  <van-swipe-item>
       <!-- 较长内容,可能出现滚动条 -->
       <ul class="scrollWrap" ref="scrollWrap"> 
              <li class="s-info" v-for="(e,i) in branchMeetData" :key="'s-' + i">
                <div class="top">
                  <span class="point"></span>
                  <span class="left">{{e.name}}</span>
                  <span class="right">查看 ></span>
                </div>
                <p class="bottom">{{e.title}}</p>
              </li>
            </ul>
  </van-swipe-item>
  <van-swipe-item>4</van-swipe-item>
</van-swipe>

<style>
.my-swipe .van-swipe-item {
  color: #fff;
  font-size: 20px;
  line-height: 150px;
  text-align: center;
  background-color: #39a9ed;
}
</style>

此处首先设置轮播方向为垂直方向,然后监听页面的onresize事件,动态设置每页轮播高度,最重要的嵌套轮播在change事件中实现:

export default {
   data () {
       screenHeight: '', // 页面内部的动态高度
       isScroll: true // 是否滚动
   }
   mounted () {
   // 获取大会议程数据
   ......
   // 监听浏览器窗口缩放事件
   this.screenHeight = document.body.clientHeight - 92 + 'px'
   window.onresize = () => {
     return (() => {
       this.screenHeight = document.body.clientHeight - 92 + 'px'
     })()
   }
 },
methods: {
   // 每一页轮播结束后触发
   onChange (index) {
     this.isChangeBgc = index === 0
     if (index === 2) {
       // 变量windowHeight是可视区的高度
       let windowHeight = this.$refs.scrollWrap.clientHeight
       // 变量scrollHeight是滚动条的总高度
       let scrollHeight = this.$refs.scrollWrap.scrollHeight
       if (scrollHeight > windowHeight) {
         this.isScroll = false
         this.$refs.scrollWrap.addEventListener('scroll', () => {
           // 变量scrollTop是滚动条滚动时,距离顶部的距离
           let scrollTop = this.$refs.scrollWrap.scrollTop
           // 滚动条到底部的条件
           if (
             scrollHeight - (scrollTop + windowHeight) < 1 ||
           scrollTop === 0
           ) {
             this.isScroll = true
           }
         })
       }
     } else {
       this.isScroll = true
     }
   }
}

相关文章

  • 页面整页轮播切换及内部嵌套内容轮播

    移动端页面,所以选择了Vant组件库,轮播部分用Swipe 轮播。 安装: 引入: 用法: 此处首先设置轮播方向为...

  • day2

    JQuery 查找 显示隐藏及切换 滑动及切换 淡入、淡出及切换 案例 轮播

  • 用 jQuery 做个轮播

    初次体验jQuery 之后,体验一下jQuery强大之处,做一个简单的轮播,实现图片切换。 点击按钮切换轮播 页面...

  • 轮播轮播

    1. 无缝轮播bug原因 之前无缝轮播在切换其他页面再回来的时候会出现错乱bug,造成这样的原因是切换到其他页面的...

  • 2018-07-30

    Jquery和纯JS实现轮播图(一)--左右切换式 一、页面结构 对于左右切换式的轮播图的结构主要分为以下几个部分...

  • 轮播单边、循环模式切换写法

    轮播单边、循环模式切换基本写法 轮播单边、循环模式切换优化写法

  • ViewPager多屏显示、切换动画

    前言 在Android中,ViewPager可以用来做页面切换,同时也可以实现基本的轮播效果,之前也对轮播做了个封...

  • Android ViewPager多屏显示、切换动画,让你的轮播

    前言 在Android中,ViewPager可以用来做页面切换,同时也可以实现基本的轮播效果,之前也对轮播做了个封...

  • BannerView-无限轮播图控件

    轮播图控件,封装ViewPager,支持无限循环轮播,支持三种常用页面特效,支持设置指示器,支持自动切换手动滑动和...

  • 微信小程序典型案例

    1.左右滑动切换页面 wxml js 2.轮播图 wxml js 3.页面随着顶部点击或者滑动切换页面 wxml ...

网友评论

      本文标题:页面整页轮播切换及内部嵌套内容轮播

      本文链接:https://www.haomeiwen.com/subject/fxxmqhtx.html