滚动时更改页面部分

时间:2017-10-18 09:04:44

标签: javascript angularjs

我想更改滚动部分,以消除单页网站的溢出并更改滚动时具有100%高度的部分。我尝试使用:

https://github.com/alvarotrigo/fullPage.js

但无法使其发挥作用。当我按照所有说明操作时,会出现以下错误:

Error: [$compile:nonassign] http://errors.angularjs.org/1.6.6/$compile/nonassign?p0=undefined&p1=options&p2=fullPage

angular.js:14700 TypeError: Cannot set property 'afterRender' of undefined

angular.js:14700 TypeError: Cannot set property 'afterRender' of undefined

我也尝试使用{{3}},没有错误但没有任何反应。

任何人都有不同的解决方案或解决方法吗?感谢。

1 个答案:

答案 0 :(得分:0)

这是一个Swiper内容滑动插件,类似于fullpage.js:
http://idangero.us/swiper/demos/20-mousewheel-control.html

您可以使用鼠标滚轮,鼠标(桌面触摸仿真),键盘(桌面)和手指(触摸设备)滚动它。另外还有一个非JQuery版本。

此外,您甚至可以将其配置为更改页面背景颜色,例如:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Swiper demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.3.1/css/swiper.min.css">
<style>
    html, body {
        position: relative;
        height: 100%;
    }
    body {
        background: #eee;
        font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
        font-size: 14px;
        color:#000;
        margin: 0;
        padding: 0;
    }
    .swiper-container {
        width: 100%;
        height: 100%;
        margin-left: auto;
        margin-right: auto;
    }
    .swiper-slide {
        text-align: center;
        font-size: 18px;
        background: transparent;

        /* Center slide text vertically */
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        -webkit-align-items: center;
        align-items: center;
    }

    body {
        transition: background-color .5s ease-in-out;
    }

    body.red {
        background-color: #f40;
    }

    body.orange {
        background-color: #f90;
    }

    body.yellow {
        background-color: #fe0;
    }
    </style>
</head>
<body>

<!-- Slider main container -->
<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide" data-bg="red">Slide 1</div>
        <div class="swiper-slide" data-bg="orange">Slide 2</div>
        <div class="swiper-slide" data-bg="yellow">Slide 3</div>
    </div>
    <div class="swiper-pagination"></div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.3.1/js/swiper.min.js"></script>
<script>
var body = document.body;
body.className = 'red';
var slider = new Swiper ('.swiper-container', {
    pagination: '.swiper-pagination',
    direction: 'vertical',
    slidesPerView: 1,
    paginationClickable: true,
    spaceBetween: 30,
    mousewheelControl: true,
    onSlideChangeStart: function (swiper) {
        var currentSlide = swiper.slides[ swiper.activeIndex ];
        body.className = currentSlide.getAttribute( 'data-bg' );
        console.log( currentSlide.getAttribute( 'data-bg' ) );
    },
});
</script>
</body>
</html>

DEMO