最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
原生js实现类似fullpage的单页/全屏滚动
时间:2017-03-01 编辑:简简单单 来源:一聚教程网
单页/全屏滚动页面越来越常见了,它多用于产品介绍、招聘等内容较少的简单页面。针对这种效果也出现了不少 jQuery 插件,本文实现的效果类似于fullpage的单屏滚动,使用原生JS实现,不依赖任何js库;
css代码:
代码如下 | 复制代码 |
html,body {height:100%;} body {margin:0px;} div {height:100%;} |
html代码:
代码如下 | 复制代码 |
js代码:
代码如下 | 复制代码 |
document.addEventListener("DOMContentLoaded",function() { varbody = document.body, html = document.documentElement; varitv, height = document.body.offsetHeight; varpage = scrollTop() / height | 0; //窗口大小改变事件 addEventListener("resize", onresize,false); onresize(); //滚轮事件 document.body.addEventListener( "onwheel"indocument ?"wheel":"mousewheel", function(e) { clearTimeout(itv); itv = setTimeout(function() { vardelta = e.wheelDelta / 120 || -e.deltaY / 3; page -= delta; varmax = (document.body.scrollHeight / height | 0) - 1; if(page < 0)returnpage = 0; if(page > max)returnpage = max; move(); }, 100); e.preventDefault(); } ); //平滑滚动 functionmove() { varvalue = height * page; vardiff = scrollTop() - value; (functioncallee() { diff = diff / 1.2 | 0; scrollTop(value + diff); if(diff) itv = setTimeout(callee, 16); })(); }; //resize事件 functiononresize() { height = body.offsetHeight; move(); }; //获取或设置scrollTop functionscrollTop(v) { if(v ==null)returnMath.max(body.scrollTop, html.scrollTop); elsebody.scrollTop = html.scrollTop = v; }; }); |
-
上一个: NodeJS遍历文件生产文件列表功能示例
相关文章
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31
- html area标签解读 10-31
- html使用表单标签实现注册页面代码展示 10-31
- 使用HTML截图并保存为本地图片的代码展示 10-31