当前位置: 首页 > Web前端 > HTML5

网页全屏切换

时间:2023-04-05 02:09:21 HTML5

.body{width:100vw;高度:100vh;溢出:隐藏;背景:#3f3f3f;}.nav{宽度:100%;高度:35px;显示:弹性;对齐项目:居中;位置:固定;左:0;顶部:0;z-指数:999;一个{弹性增长:1;文本对齐:居中;}.active{背景:粉色;颜色:绿色;字体粗细:粗体;}}.scroll{过渡:所有0.6s缓入缓出;.page{高度:100vh;文本对齐:居中;填充顶部:40vh;颜色:#fff;}.p年龄:第n个孩子(偶数){背景:rgb(15、19、10);}}的原理类似于轮播,整体元素一直排列,假设有5个全屏页面显示,那么高度为500%,只有100%显示时,容器和容器内页面当前可用的视口高度,并将容器父元素的overflow属性值设置为hidden,通过改变容器可视区域的位置。主要是响应鼠标事件,通过CSS动画效果实现页面移动。总体结构htmlpage1

page2
page3
css.container{width:100vw;高度:100vh;溢出:隐藏;}.page{宽度:100%;height:100vh;}主要是外层有一个容器,容器的宽高是屏幕的宽高。里面页面的宽度就是屏幕的宽度,高度就是屏幕的高度。多余的页面被容器隐藏。length为屏幕高度,实现全屏切换,如:transform:translateY(-100vh),上移一个屏幕高度伪代码$(".toggleBtn").click(function(item){constpageNum=$(item).attr("pageNum");//切换多少页,从1开始$("#container").css({transform:`translateY(-${(pageNum-1)*100}vh)`});//向上移动x屏幕高度});addtransitionanimation.container{transition:all0.6sease-in-out;}这样当translateY发生变化时,会有鼠标滚动的过渡动画轴上方就是切换菜单点击的思路。接下来我们看看切换鼠标滚轮的思路。根据鼠标滚轮的滚动方向(上下)决定切换到上一页还是下一页。//鼠标滚轮监听window.addEventListener("mousewheel",e=>{console.log(e.wheelDelta);if(e.wheelDelta<0){//Down//根据当前页码+下一屏高度为100vh,则取负数}else{//Up//根据当前页,计算当前页的translateY——上一屏高度为100vh,则取负数}});vue代码示例.body{width:100vw;高度:100vh;溢出:隐藏;背景:#3f3f3f;}.nav{宽度:100%;高度:35px;显示:弹性;对齐项目:居中;位置:固定;左:0;顶部:0;z-指数:999;一个{弹性增长:1;文本对齐:居中;}.active{背景:粉色;颜色:绿色;字体粗细:粗体;}}.scroll{过渡:所有0.6s缓入缓出;.page{高度:100vh;文本对齐:居中;填充顶部:40vh;颜色:#fff;}.p年龄:第n个孩子(偶数){背景:rgb(15、19、10);}}效果