基于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 相关文章推荐
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
用jquery与css打造个性化的单选框和复选框
Oct 20 Javascript
实例说明为什么不要行内使用javascript
Apr 18 Javascript
jQuery CSS()方法改变现有的CSS样式
Aug 20 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
Mar 18 Javascript
纯js和css完成贪吃蛇小游戏demo
Sep 01 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
Nov 04 Javascript
实例解析ES6 Proxy使用场景介绍
Jan 08 Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 Javascript
发布Angular应用至生产环境的方法
Dec 10 Javascript
JavaScript中条件语句的优化技巧总结
Dec 04 Javascript
为什么node.js不适合大型项目
Apr 28 Javascript
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网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
微信access_token的获取开发示例
2015/04/16 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
python对于requests的封装方法详解
2019/01/03 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
财务情况说明书范文
2014/05/06 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
同学聚会通知书
2015/04/20 职场文书
毕业生学校组织意见
2015/06/04 职场文书
法律意见书范本
2015/06/04 职场文书
使用Ajax实现进度条的绘制
2022/04/07 Javascript