原声js鼠标滚一次一屏
来源:互联网 发布:php函数大全 编辑:程序博客网 时间:2024/05/01 04:53
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>原生js实现一次滚动一屏</title> <style> html,body{ height: 100%; } body{ margin: 0; } div{ height: 100%; } </style></head><body> <div style="background-color: #1b6d85"> <div>这是第1屏</div> </div> <div style="background-color: #5cb85c"> <div>这是第2屏</div> </div> <div style="background-color: #8a6d3b"> <div>这是第3屏</div> </div> <div style="background-color: #337ab7"> <div>这是第4屏</div> </div> <div style="background-color: #66512c"> <div>这是第5屏</div> </div></body><script> document.addEventListener("DOMContentLoaded",function () { var body = document.body; var 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 onresize() { height = body.offsetHeight; move(); }; 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); } })(); }; function scrollTop(v) { if (v == null){ return Math.max(body.scrollTop,html.scrollTop); }else{ body.scrollTop = html.scrollTop = v; } } })</script></html>
阅读全文
0 0
- 原声js鼠标滚一次一屏
- 原声JS中indexOf()方法在数组中的应用一
- js判断鼠标滚动放下,向上滚还是向下滚?
- js判断鼠标滚动放下,向上滚还是向下滚?
- js 原声制作进度条
- 原声JS放大镜
- 原声js 笔记
- JS滚屏实现
- js 无缝滚屏
- Linux中鼠标滚轮一次滚动一屏解决方法
- 原声js思维导图
- IOS原声与JS交互
- 原声js多级联动菜单
- 原声js实现无缝滚动
- 原声js 锚点监听
- 让VB6代码窗口鼠标滚屏
- JS自动滚屏程序
- Js双击滚屏代码
- 初始 RPC 框架
- codeforces 367B
- 神经网络 ——一个很好的解释以及简单实现 Implementing a Neural Network from Scratch in Python – An Introduction
- 第3章 栈和队列综合习题(leetcode+vjudge)
- Codeforces Round #438 868A/B/C
- 原声js鼠标滚一次一屏
- 安装zabbix前端时的 check of pre-requisites 问题
- C++ 接口(抽象类)
- LinkedList-二叉树遍历
- Big Christmas Tree POJ
- HDU 1715 大菲波数
- 傅里叶变换最轻松的理解
- javaBean验证框架(5)—自定义类级别约束
- TCP四次挥手和TIME_WAIT