当前位置:首页 > 日记 > 正文

原生js实现类似fullpage的单页/全屏滚动

原生js实现类似fullpage的单页/全屏滚动

前言

单页/全屏滚动页面越来越常见了,它多用于产品介绍、招聘等内容较少的简单页面。针对这种效果也出现了不少 jQuery 插件,本文实现的效果类似于fullpage的单屏滚动,使用原生JS实现,不依赖任何js库;

css代码:

html,body {height:100%;}body {margin:0px;}div {height:100%;}

html代码:

<div style="background:#FEE;"></div><div style="background:#EFE;"></div><div style="background:#EEF;"></div><div style="background:red;"></div>

js代码:

document.addEventListener("DOMContentLoaded", function() { var body = document.body, html = document.documentElement; var itv, height = document.body.offsetHeight; var page = scrollTop() / height | 0; //窗口大小改变事件 addEventListener("resize", onresize, false); onresize(); //滚轮事件 document.body.addEventListener( "onwheel" in document ? "wheel" : "mousewheel", function(e) {  clearTimeout(itv);  itv = setTimeout(function() {  var delta = e.wheelDelta / 120 || -e.deltaY / 3;  page -= delta;  var max = (document.body.scrollHeight / height | 0) - 1;  if (page < 0) return page = 0;  if (page > max) return page = max;  move();  }, 100);  e.preventDefault(); } ); //平滑滚动 function move() { var value = height * page; var diff = scrollTop() - value; (function callee() {  diff = diff / 1.2 | 0;  scrollTop(value + diff);  if (diff) itv = setTimeout(callee, 16); })(); }; //resize事件 function onresize() { height = body.offsetHeight; move(); }; //获取或设置scrollTop function scrollTop(v) { if (v == null) return Math.max(body.scrollTop, html.scrollTop); else body.scrollTop = html.scrollTop = v; };});

在线演示请点击:这里

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

PPT有哪些高大上的设计指南

PPT有哪些高大上的设计指南

高大,指南,有哪些,电脑软件,PPT,  虽然上面说了扁平化PPT设计的特征,但大家要清楚一件事情,那就是没有颜值的 PPT,不会被人说成是扁平化风格,只会成为他人眼中的脏乱差风格。以下是小编为您带来的关于PPT高大上设计指南,希望对您有所帮助。PPT…

Angular开发者指南之入门介绍

Angular开发者指南之入门介绍

开发者,入门,指南,电脑软件,Angular,什么是AngularAngularJS是动态Web应用程序的结构框架。 它允许您使用HTML作为模板语言,并允许您扩展HTML的语法以清晰,简洁地表达应用程序的组件。AngularJS的数据绑定和依赖注入消除了许多你不得不编写的…

PS新算法抠图逆天:可在数秒内自动

PS新算法抠图逆天:可在数秒内自动

抠图,对象,算法,可在,逆天,Adobe Research此前曾研发出众多非常有趣的图像与视频编辑功能,但其最新的研发成果或许会对图像编辑产生革命性的影响。试想一下,如果不需要借助任何外部工具即可在数秒内自动抠出画面中复杂的对象,这将会是一件非常…

怎么把ppt转换成把ppt转换成的方法

怎么把ppt转换成把ppt转换成的方法

方法,步骤,转换成,图片,电脑软件,  设计好了一个漂亮的PPT,怎样把它真的变成图片呢?下面小编就教你怎么把ppt转换成图片的方法。希望对你有帮助!把ppt转换成图片的方法方法一:PPT另存为PJF格式  在PPT中,点击&rdquo;文件&mdash;&mdash;&ldq…

PS怎么将变成圆形形状?

PS怎么将变成圆形形状?

形状,电脑软件,PS,今天为大家分享PS怎么将图片变成圆形形状方法,方法很简单,比较适合初学者来学习,希望能对大家有所帮助!步骤:1、在PS中,打开图片,快捷键是&ldquo;Ctrl+O&rdquo;或是双击软件面板;2、双击图层,解锁;使图层变成普通图层;3、选择&ldquo;…

详解在vue-cli项目中安装node-sass

详解在vue-cli项目中安装node-sass

安装,项目,详解,电脑软件,vue,1,使用save会在package.json中自动添加。npm install node-sass --savenpm install sass-loader --save2,通常使用npm安装会出现以下报错,安装失败。(网路问题)3,可以通过淘宝的npm镜像安装node-sass,解决以上问题。n…

ps怎么把一组图层复制到新画布?

ps怎么把一组图层复制到新画布?

图层,到新,电脑软件,ps,Photoshop在进行成套图片的制作时,经常会需要将背景图层复制到其他的画布上,下面我们就来看看如何将背景图层组复制到新画布,很简单,需要的朋友可以参考下。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.…

PS简单制作会跳的可爱像素小企鹅教

PS简单制作会跳的可爱像素小企鹅教

教程,像素,小企鹅,可爱,简单,效果图:主要过程:教程结束,以上就是PS简单制作会跳的可爱像素小企鹅教程的全部内容,是不是萌萌哒?小伙伴也可以自由发挥,制作更多个性的像素动画哦!相关教程推荐:PS新手教程之PS钢笔工具的使用操作描绘出企鹅的轮廓Phot…

使用JavaScript实现alert的实例代

使用JavaScript实现alert的实例代

实例代码,电脑软件,JavaScript,alert,废话不多说了,直接给大家贴代码了,具体代码如下所示:<script> window.alert = alert; function alert(data) { var MainDiv = document.createElement("div"), p = document.createElemen…

PS合成三八女王节手表天猫海报

PS合成三八女王节手表天猫海报

女王,手表,海报,电脑软件,PS,一年一度的三八女王节来了,在这样一个大日子,我给大家分享一篇三八女王节天猫海报制作流程讲解,这篇文章对于学习电商设计的我们来说真的是干货满满,实实在在的有用。好了,单刀直入,来吧,一起来学习!12 阅读全文教程结…

微信小程序 中wx.chooseAddress |

微信小程序 中wx.chooseAddress |

详解,实例,程序,电脑软件,微信小,1、wx.chooseAddress(OBJECT)概述调起用户编辑收货地址原生界面,并在编辑完成后返回用户选择的地址。OBJECT参数说明代码实现if(wx.chooseAddress){ wx.chooseAddress({ success: function (res) { conso…

Photoshop创意合成童话故事青蛙王

Photoshop创意合成童话故事青蛙王

创意,童话故事,海报,电脑软件,Photoshop,Photoshop创意合成童话故事青蛙王子海报图片主要介绍了海报合成使用的技巧&mdash;&mdash;蒙版,今天我们只记住一点,那就是蒙版技巧,正所谓,大道至简,凡事并没有那么的高深莫测,好多高手不过就是把这些看似…