zoukankan      html  css  js  c++  java
  • 单页面全屏滚动效果使用element 跑马灯组件实例

    别的不多说了  直接上代码吧

    <template>
        <div class="full-group" ref="fullGroup">
            <el-carousel direction="vertical" :autoplay="false" :loop="false" ref="carouselFull" @change="rollNumFn" :class="addClass === 1 ? 'blue-class' : ''">
                <el-carousel-item :key="1">
                    <div class="full-item" :key="1">
                        <index-header></index-header>
                        <index-carousel :carouselData="carouselData"></index-carousel>
                    </div>
                </el-carousel-item>
                <el-carousel-item :key="2">
                    <div class="full-item">
                        <index-operator></index-operator>
                    </div>
                </el-carousel-item>
                <el-carousel-item :key="3">
                    <div class="full-item">
                        <index-map></index-map>
                    </div>
                </el-carousel-item>
                <el-carousel-item :key="4">
                    <div class="full-item">
                        <index-case></index-case>
                    </div>
                </el-carousel-item>
                <el-carousel-item :key="5">
                    <div class="full-item">
                        <index-news></index-news>
                    </div>
                </el-carousel-item>
                <el-carousel-item :key="6">
                    <div class="full-item">
                        <index-partner></index-partner>
                    </div>
                </el-carousel-item>
            </el-carousel>
        </div>
    </template>
    methods: {
            rollNumFn (val) {
                if (val === 1 || val === 3 || val === 5) this.addClass = 1
                else this.addClass = 0
            },
            deferred (fn, wait) {
                let timeout
                return function () {
                    const context = this
                    const args = arguments
                    if (timeout) clearTimeout(timeout)
                    timeout = setTimeout(() => {
                        fn.apply(context, args)
                    }, wait)
                }
            },
            handleScroll (e) {
                if (e.deltaY > 0) this.$refs.carouselFull.next()
                else this.$refs.carouselFull.prev()
            },
            handleKeyup (e) {
                if (e.keyCode === 38) {
                    this.$refs.carouselFull.prev()
                } else if (e.keyCode === 40) {
                    this.$refs.carouselFull.next()
                }
            },
            eventListenerHandle (sign) {
                const dom = this.$refs.fullGroup
                dom[sign]('mousewheel', this.deferred(this.handleScroll, 300), true) ||
                dom[sign]('DOMMouseScroll', this.deferred(this.handleScroll, 300), false)
                window[sign]('keyup', this.handleKeyup)
            }
        },
        mounted () {
            this.eventListenerHandle('addEventListener')
        },
        beforeDestroy () {
            this.eventListenerHandle('removeEventListener')
        }
    

     效果类似这种的http://www.37wan.net/ 

  • 相关阅读:
    建表关系
    设计模式-策略模式
    设计模式-适配器模式
    在线操作word和在线预览查找的资料记录
    Elasticsearch 使用-安装
    12-factors
    Kafka 使用-安装
    Apache Zookeeper 使用-安装
    Java 使用-安装
    设计模式-模板方法模式
  • 原文地址:https://www.cnblogs.com/taochengyong/p/12155997.html
Copyright © 2011-2022 走看看