jquery实现全屏滚动


Posted in Javascript onDecember 28, 2015

在很多情况下,我们需要页面的全屏滚动,尤其是移动端。今天简要的介绍一下全屏滚动的知识。

一.全屏滚动的原理
1.js动态获取屏幕的高度。

获取屏幕的高度,设置每一屏幕的高度。

2.监听mousewheel事件。

监听mousewheel事件,并判断滚轮的方向,向上或向下滚动一屏。

二.jQuery插件fullpages介绍
fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站,主要功能有:

  • 支持鼠标滚动
  • 支持前进后退和键盘控制
  • 多个回调函数
  • 支持手机、平板触摸事件
  • 支持 CSS3 动画
  • 支持窗口缩放
  • 窗口缩放时自动调整
  • 可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等

使用方法

1、引入文件

<link rel="stylesheet" href="css/jquery.fullPage.css">
<script src="js/jquery.min.js"></script>
<script src="js/jquery.fullPage.js"></script>

2、HTML

<div id="dowebok">
  <div class="section">
    <h3>第一屏</h3>
  </div>
  <div class="section">
    <h3>第二屏</h3>
  </div>
  <div class="section">
    <h3>第三屏</h3>
  </div>
  <div class="section">
    <h3>第四屏</h3>
  </div>
</div>

每个 section 代表一屏,默认显示“第一屏”,如果要指定加载页面时显示的“屏幕”,可以在对应的 section 加上class=”active”,如:

<div class="section active">第三屏</div>

同时,可以在 section 内加入 slide(左右滑动),如:

<div id="fullpages">
  <div class="section">第一屏</div>
  <div class="section">第二屏</div>
  <div class="section">
    <div class="slide">第三屏的第一屏</div>
    <div class="slide">第三屏的第二屏</div>
    <div class="slide">第三屏的第三屏</div>
    <div class="slide">第三屏的第四屏</div>
  </div>
  <div class="section">第四屏</div>
</div>

3、JavaScript

$(function(){
  $('#fullpages').fullpage();
});

可以进行跟多的配置:

$(document).ready(function() {
  $('#fullpages').fullpage({
    //Navigation
    menu: '#menu',
    lockAnchors: false,
    anchors:['firstPage', 'secondPage'],
    navigation: false,
    navigationPosition: 'right',
    navigationTooltips: ['firstSlide', 'secondSlide'],
    showActiveTooltip: false,
    slidesNavigation: true,
    slidesNavPosition: 'bottom',

    //Scrolling
    css3: true,
    scrollingSpeed: 700,
    autoScrolling: true,
    fitToSection: true,
    fitToSectionDelay: 1000,
    scrollBar: false,
    easing: 'easeInOutCubic',
    easingcss3: 'ease',
    loopBottom: false,
    loopTop: false,
    loopHorizontal: true,
    continuousVertical: false,
    normalScrollElements: '#element1, .element2',
    scrollOverflow: false,
    touchSensitivity: 15,
    normalScrollElementTouchThreshold: 5,

    //Accessibility
    keyboardScrolling: true,
    animateAnchor: true,
    recordHistory: true,

    //Design
    controlArrows: true,
    verticalCentered: true,
    resize : false,
    sectionsColor : ['#ccc', '#fff'],
    paddingTop: '3em',
    paddingBottom: '10px',
    fixedElements: '#header, .footer',
    responsiveWidth: 0,
    responsiveHeight: 0,

    //Custom selectors
    sectionSelector: '.section',
    slideSelector: '.slide',

    //events
    onLeave: function(index, nextIndex, direction){},
    afterLoad: function(anchorLink, index){},
    afterRender: function(){},
    afterResize: function(){},
    afterSlideLoad: function(anchorLink, index, slideAnchor, slideIndex){},
    onSlideLeave: function(anchorLink, index, slideIndex, direction, nextSlideIndex){}
  });
});

三.动手写全屏滚动
这里主要介绍监听mousewheel事件及滚动。

由于mousewheel事件的兼容性,引用jquery-mousewheel插件来监听滚轮事件。

通过参数delta可以获取鼠标滚轮的方向和速度(旧版本需要传delta参数,新版本不需要,直接用event取)。如果delta的值是负的,那么滚轮就是向下滚动,正的就是向上。

// using on
$('#my_elem').on('mousewheel', function(event) {
  console.log(event.deltaX, event.deltaY, event.deltaFactor);
});

// using the event helper
$('#my_elem').mousewheel(function(event) {
  console.log(event.deltaX, event.deltaY, event.deltaFactor);
});

可以根据需求使用fullpages实现全屏滚动(上下,左右),也可以使用jquery-mousewheel定制不同高度的全屏滚动。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JQuery实现自定义对话框的代码
Jun 15 Javascript
向左滚动文字 js代码效果
Aug 17 Javascript
js算法中的排序、数组去重详细概述
Oct 14 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
使用javascript控制cookie显示和隐藏背景图
Feb 12 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
Jun 15 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
Aug 24 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
JS判断一个数是否是水仙花数
Jun 11 Javascript
vuex与组件联合使用的方法
May 10 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
AngularJS使用angular-formly进行表单验证
Dec 27 #Javascript
延时加载JavaScript代码提高速度
Dec 27 #Javascript
AngularJS使用ngMessages进行表单验证
Dec 27 #Javascript
详解maxlength属性在textarea里奇怪的表现
Dec 27 #Javascript
SublimeText自带格式化代码功能之reindent
Dec 27 #Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 #Javascript
JavaScript的removeChild()函数用法详解
Dec 27 #Javascript
You might like
php生成图片验证码
2015/06/09 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
Javascript 继承实现例子
2009/08/12 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
原生js实现轮播图
2017/02/27 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python中的XML库4Suite Server的介绍
2015/04/14 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
python取均匀不重复的随机数方式
2019/11/27 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
班组长安全生产职责
2013/12/16 职场文书
调查研究项目计划书
2014/04/29 职场文书
入党推优材料
2014/06/02 职场文书
小学数学教研活动总结
2014/07/01 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
利用Python实现模拟登录知乎
2022/05/25 Python