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 相关文章推荐
点击广告后才能获得下载地址
Oct 26 Javascript
关于 文本框默认值 的操作js代码
Jan 12 Javascript
MooBox 基于Mootools的对话框插件
Jan 20 Javascript
鼠标滚轮控制网页横向移动实现思路
Mar 22 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
整理Javascript事件响应学习笔记
Dec 02 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
Swiper自定义分页器使用详解
Dec 28 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
Jun 19 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 Javascript
vue离开当前页面触发的函数代码
Sep 01 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
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python中unittest用法实例
2014/09/25 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
详解Python3 pandas.merge用法
2019/09/05 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
python 实现客户端与服务端的通信
2020/12/23 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
小加工厂管理制度
2014/01/21 职场文书
服务标兵事迹材料
2014/05/04 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
服务理念标语
2014/06/18 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
销售合作意向书范本
2015/05/08 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android