全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript实现页面滚屏效果

当我们浏览网页的时候,时常会碰到可以滚动屏幕的炫酷网页,今天笔者对这一技术进行简单实现,效果不及读者理想中那般炫酷,主要针对滚屏的技术原理和思想进行分享和分析。本示例在页面右侧有五个数字标签,代表五个页面,点击数字可以切换到对应的页面,滚动鼠标滑轮可以实现数字标签的切换,页面的切换。笔者未对页面的平稳滚动进行实现,读者可自行试验研究。

这是html代码:

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>Document</title>
 <link rel="stylesheet" type="text/css" href="style.css" />
 </head>
 <body>
 <div class="big-box" id="bigBox">
  <div class="item item1"><h1>屏幕1</h1></div>
  <div class="item item2"><h1>屏幕2</h1></div>
  <div class="item item3"><h1>屏幕3</h1></div>
  <div class="item item4"><h1>屏幕4</h1></div>
  <div class="item item5"><h1>屏幕5</h1></div>
 </div>
 <ul class="controls">
  <li class="active">1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
 </ul>
 <script src="behavior.js"></script>
 </body>
</html>

这里是css结构代码:

*{margin:0; padding:0;}
html,body{
 width:100%;
 height:100%;
 overflow:hidden;
}
.big-box {
 width:100%;
 height:500%;
 text-align:center;
 position:absolute;
}
.big-box .item{
 height:20%;
}
.big-box .item1 {
 background-color:red;
}
.big-box .item2 {
 background-color:blue;
}
.big-box .item3 {
 background-color:purple;
}
.big-box .item4 {
 background-color:gold;
}
.big-box .item5 {
 background-color:pink;
}
.controls {
 list-style:none;
 position:absolute;
 top:20%;
 right:20px;
}
.controls li {
 width:50px;
 height:50px;
 font:bold 22px/50px "宋体";
 text-align:center;
 background-color:#000;
 color:#fff;
 cursor:pointer;
}
.controls li+li {
 margin-top:5px;
}
.controls li.active {
 background-color:#fff;
 color:red;
}

这里是JavaScript代码:

/*
 思路:
 第一步:当页面加载完后,获取所要操作的节对象
 第二步:为document添加一个滚轮滚动事件
 第三步:滚轮滚动切换
  获取当前浏览器可视区域的高度
  var viewHeight = document.body.clientHeight
  滚轮切换的目的:就是更改bigBox的top值
  top:最大0
  top:最小 viewHeight*-4
  从上到下或从下到上:最多走4次(5个页面) 每一次走viewHeight
  控制的关键点:索引 定一个索引 2
  滚轮↓
  索引+1
  滚轮↑
  索引-1
  bigBox.style.top = -索引*viewHeihgt 
*/
var bigBox = document.getElementById("bigBox");//获取bigBox节点对象
var lis = document.querySelectorAll(".controls li");//获取所有的li节点对象
var viewHeight = document.body.clientHeight;//获取当前页面高度
var flag = true;//设置开关
var index = 0;//设置索引
//封装事件,兼容浏览器
function on(obj,eventType,fn){
 if(obj.addEventListener){
 obj.addEventListener(eventType, fn);
 }else{
 obj.attachEvent("on" + eventType, fn);
 }
}
//鼠标滚动事件处理函数
function handler(e){
 var _e = window.event || e;
 if(flag){
 flag = false;
 if(_e.wheelDelta==120 || _e.detail==-3){//如果鼠标滚轮向上滚动,detail为火狐判断条件
  index--;
  if(index<0){
  index = 0;
  }
 }else{//向下滚动
  index++;
  if(index>lis.length-1){//如果索引大于页面数,就是滚到最后一张页面时,再滚动鼠标页面不再滚动
  index = lis.length-1;
  }
 }
 bigBox.style.top = -index*viewHeight + "px";//bigBox整体上移index个页面
 for(var i=0; i<lis.length; i++){
  lis[i].className = "";//重置全部li的类
 }
 lis[index].className = "active";//设置当前li的类名
 setTimeout(function(){//页面滚动间隔一秒,防止滚动太快
  flag = true;//重新开启开关
 },1000);
 }
}
on(document,"mousewheel",handler);//滚轮滚动事件
on(document,"DOMMouseScroll",handler);//滚轮滚动事件,适配火狐浏览器
//数字标签点击处理
for(var i=0; i<lis.length; i++){
 lis[i].tag = i;
 lis[i].onclick = function(){
 for(var j=0; j<lis.length; j++){
  lis[j].className = "";
 }
 lis[this.tag].className = "active";
 bigBox.style.top = -this.tag*viewHeight + "px";
 }
}

笔者在这里进行了html,css和javascript的分离,读者可自行整合。代码编写的逻辑思路也在代码中进行了简单说明,方便读者阅读和理解。笔者在这里只是对滚屏技术进行简单的实现,纯javascript技术,效果稍欠人意,读者可自行学习,对这一技术进行完美实现。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 滚屏  # 利用JavaScript脚本实现滚屏效果的方法  # 鼠标  # 这一  # 在这里  # 火狐  # 进行了  # 这是  # 也在  # 可以实现  # 当我们  # 所要  # 太快  # 第二步  # 完后  # 第三步  # 切换到  # 宋体  # 浏览网页  # 未对  # 从上到下 


相关文章: 建站之星如何配置系统实现高效建站?  建站之星图片链接生成指南:自助建站与智能设计教程  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何通过服务器快速搭建网站?完整步骤解析  家庭服务器如何搭建个人网站?  建站之星如何快速更换网站模板?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何彻底卸载建站之星软件?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  建站主机服务器选购指南:轻量应用与VPS配置解析  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  建站之星如何一键生成手机站?  建站之星安装需要哪些步骤及注意事项?  如何快速查询域名建站关键信息?  如何自定义建站之星模板颜色并下载新样式?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何通过万网虚拟主机快速搭建网站?  网站网页制作专业公司,怎样制作自己的网页?  清除minerd进程的简单方法  如何在景安云服务器上绑定域名并配置虚拟主机?  建站之星如何助力网站排名飙升?揭秘高效技巧  建站之星如何开启自定义404页面避免用户流失?  如何在Golang中使用replace替换模块_指定本地或远程路径  Android滚轮选择时间控件使用详解  如何在阿里云ECS服务器部署织梦CMS网站?  如何选择美橙互联多站合一建站方案?  广州营销型建站服务商推荐:技术优势与SEO优化解析  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  广州商城建站系统开发成本与周期如何控制?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  IOS倒计时设置UIButton标题title的抖动问题  如何选购建站域名与空间?自助平台全解析  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  公司门户网站制作流程,华为官网怎么做?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何在阿里云部署织梦网站?  香港服务器选型指南:免备案配置与高效建站方案解析  如何零成本快速生成个人自助网站?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  淘宝制作网站有哪些,淘宝网官网主页?  网站制作需要会哪些技术,建立一个网站要花费多少?  如何快速重置建站主机并恢复默认配置?  SQL查询语句优化的实用方法总结  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  网站制作公司排行榜,四大门户网站排名? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。