基于jquery实现全屏滚动效果


Posted in Javascript onNovember 26, 2015

那么今天就来介绍这款fullPage,与fullPage.js是不同的,fullpage兼容性更佳,能向下兼容到IE6, 不依赖任何 js 库,可独立使用。功能上虽然不如 fullPage.js 强大,但一般使用已经足够了,尤其是它的动画效果,你可以自由设定缩放、旋转以产生各种各样的动画效果。同时它还支持 fullPage.js 所没有的水平滚动。

  • 兼容桌面端(ie5.5+) 和 手机端
  • 你可以用它来构建你的个人主页或者网页应用
  • 这是一个不使用jQuery小巧的框架 不到9KB

再介绍之前先看一看运行效果图:

基于jquery实现全屏滚动效果

引入核心库,pagefull的依赖任何JS库,所以只需引入它本身就可以了

<script src="js/fullPage.min.js"></script>

写入html

//请在head区加入以下代码,移动端使用
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
 
<!--[if lte IE 7]>  
<body scroll="no"> 
<![endif]-->
<!--[if gt IE 7]><!--> 
<body> 
<!--<![endif]-->
 <div id="pageContain">
   
  <div class="page page1 current">
   <div class="contain">
     
   </div>
  </div>
 
  <div class="page page2">
   <div class="contain">
     
   </div>
  </div>
 
  <div class="page page3" data-step="4">
   <div class="contain">
    <p class="demo-data-step">data-step可以让你在不切屏的情况下更换动画</p>
   </div>
  </div>
 
  <div class="page page4">
   <div class="contain">
     
   </div>
  </div>
 
  <div class="page page5">
   <div class="contain">
     
   </div>
  </div>
 
  <div class="page page6">
   <div class="contain">
     
   </div>
  </div> 
 </div>
 <ul id="navBar">
  <li>0</li>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
 </ul>
</body>

写入CSS,不熟悉CSS3的朋友请回去补下,这里不做解析了,CSS可以根据项目的需求自由的定义。

html {
 -ms-touch-action: none; /* 阻止windows Phone 的默认触摸事件 */
 }
 body,
 div,
 p {
  margin: 0;
  padding: 0;
 }
 ul {
  list-style: none;
 }
 body {
  width: 100%;
  *cursor: default;
  overflow: hidden;
  font: 16px/1.5 "Microsoft YaHei",Helvetica,STHeiti STXihei,Microsoft JhengHei,Arial;
 }
 #pageContain {
  overflow: hidden;
 }
 .page {
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
 }
 .contain {
  width: 100%;
  height: 100%;
  display: none;
  position: relative;
  z-index: 0;
 }
 .current .contain,.slide .contain {
  display: block;
 }
 .current {
  display: block;
  z-index: 1;
 }
 .slide {
  display: block;
  z-index: 2;
 }
 .swipe {
  display: block;
  z-index: 3;
  transition-duration: 0ms !important;
  -webkit-transition-duration: 0ms !important;
 }
 .page1 {
  background: #37c1e3;
 }
 .page2 {
  background: #009922;
 }
 .page3 {
  background: #992211;
 }
 .page4 {
  background: #ff00ff;
 }
 .page5 {
  background: #00ff00;
 }
 .page6 {
  background: #22ffff;
 }
 #navBar {
  z-index: 3;
  position: absolute;
  top: 10%;
  right: 3%;
 }
 #navBar .active {
  background: #ccc;
 }
 #navBar li {
  cursor: pointer;
  margin-bottom: 10px;
  transition: all .7s ease;
  border-radius: 50%;
  line-height: 40px;
  text-align: center;
  width: 40px;
  height: 40px;
 }
 
 
 
 p {
  width: 200px;
  height: 100px;
  color:#fff;
  text-align: center;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -100px;
  margin-top: -50px;
  opacity: 1;
  transition: all .8s ease;
  transform-origin: 50% 50%;
 }
 .step1 p {
  transform: translate(0, -50px);
  -webkit-transform: translate(0, -50px);
 }
 .step2 p {
  opacity: 0;
  transform: scale(2);
  -webkit-transform: scale(2);
 }
 .step3 p {
  transform: scale(1);
  -webkit-transform: scale(1)
  opacity: 1;
 }
 .step4 p {
  -webkit-transform: rotate(360deg) translate(0,-200px) scale(.3);
  transform: rotate(360deg) translate(0,-200px) scale(.3);
  opacity: 0;
 }

写入JS,实现效果

var runPage;
 
runPage = new FullPage({
 
 id : 'pageContain',       // 容器id
 slideTime : 800,        // 每页切换时间,单位为毫秒
 continuous : false,       // 是否循环(即能从最后页跳到第一页面)
 effect : {          // 滚动效果
   transform : {
    translate : 'Y',     // 'X'|'Y'|'XY'|'none' X轴|Y轴|XY轴|无
    scale : [.1, 1],    // [scalefrom, scaleto] [起始缩放比例, 结束时缩放比例]
    rotate : [0, 0]      // [rotatefrom, rotateto] [起始旋转角度, 结束时旋转角度]
   },
   opacity : [0, 1]      // [opacityfrom, opacityto][起始透明度, 结束时透明度]
  },       
 mode : 'wheel,touch,nav:navBar',    // 转换模式 'wheel,touch,nav:navBar' 表示 '滚轮,触摸,导航条:导航条id'
 easing : 'ease'        // easing('ease','ease-in','ease-in-out' 或使用贝塞尔曲线 [.33, 1.81, 1, 1];
 // ,onSwipeStart : function(index, thisPage) { // 触摸开始时的回调函数
 // return 'stop';
 // }
 // ,beforeChange : function(index, thisPage) { // 滑动开始时的回调函数
 // return 'stop';
 // }
 // ,callback : function(index, thisPage) {  // 滑动结束后的回调函数
 // alert(index);
 // };
});

详细参数设置

id String ? 外层包裹id

slideTime Integer (default:800) ? 每页切换时间(毫秒)

effect Object (default:{}) ? 效果参数

mode String (default:'') ? 转换模式 'wheel,touch,nav:navBar' 表示 '滚轮,触摸,导航条:导航条id'

callback Function ? 滑动结束后的回调函数

接口

Fullpage也提供了一些借口供使用此插件的开发者调用:

prev() 直接滑向上一页

next() 直接滑入下一页

thisPage() 返回当前的页码

go(num) 直接滑到第num页

以上就是关于实现类似网易邮箱全屏滚动的效果,希望大家可以制作一个适合于自己网站的全屏滚动效果。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - ComboBox组合框
Oct 07 Javascript
javascript通过class来获取元素实现代码
Feb 20 Javascript
关于JavaScript与HTML的交互事件
Apr 12 Javascript
jQuery实现动画效果的简单实例
Jan 27 Javascript
jQuery新的事件绑定机制on()示例应用
Jul 18 Javascript
jquery实现保存已选用户
Jul 21 Javascript
jQuery实现的自动加载页面功能示例
Sep 04 Javascript
原生javascript实现分页效果
Apr 21 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
vue中实现Monaco Editor自定义提示功能
Jul 05 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
Aug 23 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
javascript给span标签赋值的方法
Nov 26 #Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 #Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 #Javascript
js检测iframe是否加载完成的方法
Nov 26 #Javascript
学习JavaScript设计模式(策略模式)
Nov 26 #Javascript
深入浅析同源策略和跨域访问
Nov 26 #Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 #Javascript
You might like
如何正确理解PHP的错误信息
2006/10/09 PHP
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
json数据的列循环示例
2013/09/06 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
Sublime开发python程序的示例代码
2018/01/24 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
python中有函数重载吗
2020/05/28 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
审核会计岗位职责
2013/11/08 职场文书
中学生评语大全
2014/04/18 职场文书
化工实习心得体会
2014/09/09 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
民主生活会主持词
2015/07/01 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript