单页面全屏滚动效果使用element 跑马灯组件实例

Posted taochengyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单页面全屏滚动效果使用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/ 

以上是关于单页面全屏滚动效果使用element 跑马灯组件实例的主要内容,如果未能解决你的问题,请参考以下文章

Element UI之Carousel 走马灯使用示例

无缝隙滚动跑马灯组件

拥抱单页网站! jQuery全屏滚动插件fullPage.js

背景音乐,嵌入式频,跑马灯滚动效果

jquery跑马灯效果

自己用js实现全屏滚动