好程序员技术分享jQuery实现类似fullpage插件的全屏滚动效果

简介: 好程序员技术分享jQuery实现类似fullpage插件的全屏滚动效果。结合网上的思路,加上我之前自己做的代码,代码有这几种功能:1.头部和尾部的内容可以不用滚动,只要中间的滚动就行。2.支持上一屏和下一屏的动画触发3.

好程序员技术分享jQuery实现类似fullpage插件的全屏滚动效果。

结合网上的思路,加上我之前自己做的代码,代码有这几种功能:

1.头部和尾部的内容可以不用滚动,只要中间的滚动就行。

2.支持上一屏和下一屏的动画触发

3.支持下一页和上一页导航跳转

4.支持小导航显示和跳转到某一页

HTML代码:

header

<div class="main">
    <div class="page page1">page1</div>
    <div class="page page2">page2</div>
    <div class="page page3">page3</div>
    <div class="page page4">page4</div>
</div>
<div class="page-nav"><i class="current"></i><i></i><i></i><i></i></div>
<a href="javascript:void(0)" class="nextPage">下一页</a>





CSS设置时,需要注意有两个父类元素,最外面的要设置超出高度隐藏。

.doc{height:640px;position:relative;overflow:hidden}
.main{position:relative}
.doc .page{position:absolute;height:100%;width:100%;top:100%}
.doc.done .page{position:static;top:0}
JS代码,要注意滚动的兼容代码用到了jQuery插件jquery-mousewheel,不要漏掉这个插件
JS:

$(function() {

var onScroll = false,
curIndex = 0,
len = $(".doc .page").length;
var winHeight = $(window).height();
// var boxHeight = winHeight- 60 >640 ? winHeight - 60 : 640; //当需要显示所有内容,需要给外层一个固定高度,保证所有内容都能看到
var boxHeight = winHeight - 60;
var toPage = function(curIndex) {
    onScroll = true;
    var now = -curIndex * boxHeight;
    $(".page").eq(curIndex).addClass("current").siblings(".page").removeClass("current");
    $(".page-nav i").eq(curIndex).addClass("current").siblings("i").removeClass("current");
    $(".main").animate({
        top: now + "px"
    },1000,function() {
        onScroll = false;
    });
};
$(".doc").css("height", boxHeight);
$(".main").css("height", boxHeight * len);
$(".page").css("height", boxHeight);
$(".doc").addClass("done");
var pageNext = function() {
    if (curIndex == len - 1) return;
    curIndex++;
    toPage(curIndex);
}
var pagePrev = function() {
    if (curIndex == 0) return;
    curIndex--;
    toPage(curIndex);
}
$(".doc").on("mousewheel",function(e, i) {
    if (onScroll) return;
    if (i < -.2) {
        //向下滚动
        pageNext();
    } else {
        //向上滚动
        pagePrev();
    }
});
$('.nextPage').on('click',function() {
    if (onScroll) return;
    pageNext();
}); 
$('.page-nav i').on('click',function() {
    if (onScroll) return;
    var index = $(this).index();
    toPage(index);
})

});

相关文章
|
17小时前
jQuery+Slick插件实现游戏人物轮播展示切换源码
jQuery+Slick插件实现游戏人物轮播展示切换源码
21 14
|
22天前
|
JavaScript 前端开发
jQuery和CSS3滑动展开菜单按钮插件
这是一款jQuery和CSS3滑动展开菜单按钮插件。该滑动展开菜单按钮在用户点击主菜单按钮之后,子菜单以滑动的方式依次展开
59 21
|
18天前
|
JavaScript
jquery文字动画特效插件animatext
jquery文字动画特效插件animatext
41 9
|
20天前
|
移动开发 JavaScript 前端开发
简单易用的jquery响应式轮播图插件ma5slider
ma5slider是一款简单易用的jquery响应式轮播图插件。该轮播图支持鼠标拖拽,可以通过CSS定制外观,支持无限循环模式,内置水平,垂直和淡入淡出三种轮播图过渡动画效果。
|
23天前
|
JavaScript
简洁实用的jQuery进度条插件
这是一款简洁实用的jQuery进度条插件。该插件使用简单,通过在页面中放置指定的HTML代码,即可生成带动画效果的进度条。
|
22天前
|
JavaScript 容器
jQuery文字跑马灯插件Marquee
jQuery.Marquee是一款jQuery文字跑马灯插件。jQuery.Marquee跑马灯插件可以结合使用CSS3动画,制作文字的上下左右移动效果。
|
18天前
|
JavaScript 容器
jquery和CSS3图片排序过滤搜索插件
Filterizr是一款jquery和CSS3图片排序过滤插件。它可以对一组图片进行排序,按条件过滤和按关键字搜索。并在显示结果时使用指定的CSS3动画过渡效果。
24 2
|
18天前
|
JavaScript
jquery和CSS3响应式轮播图插件jcSlider
jcSlider是一款jquery和CSS3响应式轮播图插件。jcSlider使用CSS3过渡动画,它可以和animate.css完美结合,生成60多种轮播图过渡动画效果。
|
22天前
|
JavaScript
jQuery Lightbox和弹出层插件flashy
Flashy.js是一款响应式jQuery Lightbox和弹出层插件
|
21天前
|
JavaScript 容器
jQuery消息通知显示插件
MessageNotifyPlugin是一款简单的jQuery消息通知显示插件。该jQuery消息通知显示插件能够自动生成最新消息和提醒消息两个消息通知按钮。并且可以设置消息的是否已读状态等
24 2