原生javascript实现的全屏滚动功能示例
发布时间 - 2026-01-11 03:19:15 点击率:次本文实例讲述了原生javascript实现的全屏滚动功能。分享给大家供大家参考,具体如下:

原理:
1. 计算当前浏览器屏幕高度,每次翻页显示的内容高度即为屏幕高度
2. 对鼠标滚轮事件进行监听,注意滚轮事件的浏览器兼容问题。
废话不多说,直接上代码
html代码:
<div id="wrap">
<div id="main" style="top: 0;">
<div class="content num1">
<img src="https://www.bing.com/az/hprichbg/rb/SingingRingingTree_ZH-CN12497946624_1920x1080.jpg" width="100%" height="100%">
</div>
<div class="content num2">
<img src="https://www.bing.com/az/hprichbg/rb/ShenandoahNP_ZH-CN9981989975_1920x1080.jpg" width="100%" height="100%">
</div>
<div class="content num3">
<img src="https://www.bing.com/az/hprichbg/rb/GareSaintLazare_ZH-CN6611772290_1920x1080.jpg" width="100%" height="100%">
</div>
<div class="content num4">
<img src="https://www.bing.com/az/hprichbg/rb/FriendshipSquare_ZH-CN8820626148_1920x1080.jpg" width="100%" height="100%">
</div>
</div>
</div>
css代码:
#wrap{overflow: hidden;width: 100%;}
#main{top: 0;position: relative;}
.content{width: 100%;margin: 0;height: 100%;}
.num1{background: #e8e8e8;}
.num2{background: pink;}
.num3{background: yellow;}
.num4{background: orange;}
js代码:
<script type="text/javascript">
var wrap = document.getElementById("wrap");
var divHeight = window.innerHeight;
wrap.style.height = divHeight + "px";
var content = $(".content");//懒得写获取类的原生js代码了,直接用了jquery,=。=
content.height(divHeight);
var startTime = 0, //开始翻屏时间
endTime = 0,
now = 0;
if ((navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)){
//for firefox;
document.addEventListener("DOMMouseScroll",scrollFun,false);
}
else if (document.addEventListener) {
document.addEventListener("mousewheel",scrollFun,false);
}
else if (document.attachEvent) {
document.attachEvent("onmousewheel",scrollFun);
}
else{
document.onmousewheel = scrollFun;
}
//滚动事件处理函数
function scrollFun(event){
startTime = new Date().getTime();
var delta = event.detail || (-event.wheelDelta);
if ((endTime - startTime) < -1000) {
//1秒内执行一次翻页
if (delta > 0 && parseInt(main.style.top) > -divHeight * ( content.length - 1)) { //向下翻页
now += divHeight ;
turnPage(now);
}
if (delta < 0 && parseInt(main.style.top) < 0) { //向上翻页
now -= divHeight ;
turnPage(now);
}
endTime = new Date().getTime();
}
else{
event.preventDefault();
}
}
//翻页函数
function turnPage(now){
$("#main").animate({top:(-now+'px')},1000);
//懒得写动画代码了,直接用了jquery,=。=
}
</script>
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# javascript
# 全屏滚动
# JavaScript全屏和退出全屏事件总结(附代码)
# fullPage.js和CSS3实现全屏滚动效果
# 原生js实现类似fullpage的单页/全屏滚动
# Javascript 实现全屏滚动实例代码
# JS实现全屏的四种写法
# jQuery插件fullPage.js实现全屏滚动效果
# JS 全屏和退出全屏详解及实例代码
# 全屏滚动插件fullPage.js使用实例解析
# 浅谈javascript控制HTML5的全屏操控
# 浏览器兼容的问题
# js实现各浏览器全屏代码实例
# 翻页
# 用了
# 相关内容
# 鼠标
# 遍历
# 感兴趣
# 数据结构
# 给大家
# 多说
# 更多关于
# 全屏
# 即为
# 所述
# 程序设计
# 讲述了
# www
# https
# src
# hprichbg
# az
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Android GridView 滑动条设置一直显示状态(推荐)
JS去除重复并统计数量的实现方法
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何在Windows虚拟主机上快速搭建网站?
PythonWeb开发入门教程_Flask快速构建Web应用
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
高防服务器租用首荐平台,企业级优惠套餐快速部署
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
zabbix利用python脚本发送报警邮件的方法
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
高防服务器租用指南:配置选择与快速部署攻略
Android利用动画实现背景逐渐变暗
油猴 教程,油猴搜脚本为什么会网页无法显示?
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
Laravel如何使用withoutEvents方法临时禁用模型事件
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
网站制作壁纸教程视频,电脑壁纸网站?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
在Oracle关闭情况下如何修改spfile的参数
jquery插件bootstrapValidator表单验证详解
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
php打包exe后无法访问网络共享_共享权限设置方法【教程】
如何在IIS服务器上快速部署高效网站?
Python进程池调度策略_任务分发说明【指导】
Laravel如何为API生成Swagger或OpenAPI文档
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Bootstrap整体框架之JavaScript插件架构
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Laravel Fortify是什么,和Jetstream有什么关系
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
如何用JavaScript实现文本编辑器_光标和选区怎么处理
C++时间戳转换成日期时间的步骤和示例代码
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何在宝塔面板中修改默认建站目录?
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南

