a single page scroll plugin fo
overviewA sigle-page scroll plugin based on vue@2.x,support for mobile and PC . 中文版
To achieve sigle-page scroll in mobile, support horizontal scroll and vertical scroll, support all the animation instructions of animate.css.
Online demohere's a jsfiddle demo Live demo
Installationnpm install fullpage-vue --save
If you want use animate instruction, please install animate.css
npm install animate.css --save
animate.css usage
Document optionsstart
: (default:0
) Display first page
duration
: (default:500
)
loop
: (default:false
)
dir
: (default:v
) Direction of movement
der
: (default:0.1
)
movingFlag
: (default:false
)
beforeChange
: (default:function
) Before change callback
afterChange
: (default:function
) After change callback
overflow
: (default:hidden
) hidden || scroll || auto
hidden
Hidden overflow
scroll
Handling the scroll bars of page
auto
Handling all scroll bars in page,Start checking from triggered elements
disabled
: (default:false
)
method
moveTo
Move to the specified page
/** * * @param {Number} moveToIndex Move to index * @param {Boolean} animated Animated move? * @param {Boolean} force Fore move default:false */ $fullpage.moveTo(1/*move to index*/,false /*animatied*/,true /*force move?*/) movePrev
Move to the previous page
moveNextMove to the next page
setDisabledChange the value of disabled. A value of true disables move
$updateUpdate the dom structure,for example v-for
and v-if
Affect the number of pages, need to manually call $update
<button type="button" v-for="btn in pageNum" :class="{active:index == btn + 2}" @click="moveTo(btn+2)">page {{btn+2}}</button> <button type="button" @click="showPage()">add page</button> <div class="page-2 page" v-for="page in pageNum"> <h2 class="part-2" v-animate="{value: 'bounceInRight'}">page {{page}}</h2> </div>
showPage:function(){ this.pageNum ++; this.$refs.fullpage.$fullpage.$update(); } getting started main.js
Import the plugin of css and js file in main.js
import 'animate.css' import 'fullpage-vue/src/fullpage.css' import VueFullpage from 'fullpage-vue' Vue.use(VueFullpage) app.vue
template
fullpage-container
、fullpage-wp
、page
are default class name.
Add the v-fullpage
command to the page-wp
container.
Add the v-animate
command to the page
container.
<div class="fullpage-container"> <div class="fullpage-wp" v-fullpage="opts" ref="example"> <div class="page-1 page"> <p class="part-1" v-animate="{value: 'bounceInLeft'}">fullpage-vue</p> </div> <div class="page-2 page"> <p class="part-2" v-animate="{value: 'bounceInRight'}">fullpage-vue</p> </div> <div class="page-3 page"> <p class="part-3" v-animate="{value: 'bounceInLeft', delay: 0}">fullpage-vue</p> <p class="part-3" v-animate="{value: 'bounceInRight', delay: 600}">fullpage-vue</p> <p class="part-3" v-animate="{value: 'zoomInDown', delay: 1200}">fullpage-vue</p> </div> </div> <button @click="moveNext">next</button> </div>
script
fullpage-vue
value please refer to api document
export default { data() { return { opts: { start: 0, dir: 'v', duration: 500, beforeChange: function (currentSlideEl,currenIndex,nextIndex) { }, afterChange: function (currentSlideEl,currenIndex) { } } } }, methods:{ moveNext(){ this.$refs.example.$fullpage.moveNext(); //Move to the next page } } }
style
Set the page-container
container's width and height what do you want, and the v-fullpage
command will adapt the width and height of the parent element.
The following settings allow the scrolling page to fill the full screen.
<style>
.fullpage-container {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
</style>
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。