页面平滑过渡全屏切换
实现效果为页面平滑过渡全屏切换,点击导航和鼠标滚动都可以切换。
效果图:
代码:
<!DOCTYPE html> <html> <head lang="en"><meta charset="UTF-8"><title></title><meta http-equiv="X-UA-COMPATIBLE" content="IE-edge,chrome=1"><!--告诉ie使用新的渲染方式,防止低版本的ie不能使用css3--><meta name="viewport" content="width=device-width,initial-scale=1"><link href="http://fonts.googleapis.com/css?family=Josefin+Slab:400,700" rel="stylesheet" type="text/css"/><link href="css/css.css" rel="stylesheet"/> </head> <body> <div class="container"><div class="nav"><input type="radio" name="radio-set" checked id="nav1"><a href="#panel1">导航1</a><input type="radio" name="radio-set" id="nav2"><a href="#panel2">导航2</a><input type="radio" name="radio-set" id="nav3"><a href="#panel3">导航3</a><input type="radio" name="radio-set" id="nav4"><a href="#panel4">导航4</a><input type="radio" name="radio-set" id="nav5"><a href="#panel5">导航5</a><div class="scroll"><section class="panel" id="panel1"><div class="icon" data-icon="a"></div><h1>Serendipity1</h1><p>you are my sunshine</p></section><section class="panel panelColor" id="panel2"><div class="icon" data-icon="b"></div><h1>Serendipity2</h1><p>you are my sunshine</p></section><section class="panel" id="panel3"><div class="icon" data-icon="c"></div><h1>Serendipity3</h1><p>you are my sunshine</p></section><section class="panel panelColor" id="panel4"><div class="icon" data-icon="d"></div><h1>Serendipity4</h1><p>you are my sunshine</p></section><section class="panel" id="panel5"><div class="icon" data-icon="e"></div><h1>Serendipity5</h1><p>you are my sunshine</p></section></div></div> </div> <script>window.οnlοad= function () {var scroll=document.getElementsByClassName("scroll")[0];//ie不兼容,换成id会成功var panel=document.getElementsByClassName("panel");//ie不兼容,换成id会成功var clientH=window.innerHeight;scroll.style.height=clientH+"px";for(var i=0;i<panel.length;i++){panel[i].style.height=clientH+"px";}/*下面是关于鼠标滚动*/var inputC=document.getElementsByTagName("input");var wheel= function (event) {var delta=0;if(!event)//for ieevent=window.event;if(event.wheelDelta){//ie,operadelta=event.wheelDelta/120;}else if(event.detail){delta=-event.detail/3;}if(delta){handle(delta,inputC);}if(event.preventDefault) event.preventDefault();event.returnValue=false;};if(window.addEventListener){window.addEventListener('DOMMouseScroll',wheel,false);}window.onmousewheel=wheel;};function handle(delta,arr) {var num;for(var i=0;i<arr.length;i++){//得到当前checked元素的下标if(arr[i].checked){num=i;}}if(delta>0 && num>0){//向上滚动num--;arr[num].checked=true;}else if(delta<0 && num<4){//向下滚动num++;arr[num].checked=true;}} </script> </body> </html>
CSS代码:
*{margin:0;padding:0; }body{font-family:Georia,serif;background:#ddd;font-weight:bold;font-size:15px;color:#333;overflow: hidden;-webkit-font-smoothing:antialiased; } a{text-decoration:none;color:#555; } .clr{width:0;height:0;overflow: hidden;clear:both;padding:0;margin:0; } .nav{width:100%;position:absolute;left:0;bottom:0;font-family:"Josefin Slab","Myriad pro" ,serif; } .nav input,.nav a{width:20%;height:34px;line-height:34px;position:fixed;bottom:0;cursor:pointer; } .nav input{opacity:0;z-index:1000; } .nav a{z-index:10;font-weight:700;font-size:16px;background:#e23a6e;color:#fff;text-align:center;text-shadow: 1px 1px 1px rgba(151,24,64,0.2); } #nav1,#nav1 + a{left:0%; } #nav2,#nav2 + a{left:20%; } #nav3,#nav3 + a{left:40%; } #nav4,#nav4 + a{left:60%; } #nav5,#nav5 + a{left:80%; } .nav input:checked + a, .nav input:checked:hover +a{background:#821134; } .nav input:checked + a:after{content:"";width:0;height:0;overflow:hidden;border:20px solid transparent;border-bottom-color:#821134;position:absolute;bottom:100%;left:50%;margin-left:-20px; } .nav input:hover + a{background:#AD244f; } .scroll,.panel{width:100%;height:100%;position:relative;text-align:center;padding-top:250px; } .scroll{left:0;top:0;-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);-webkit-backface-visibility: hidden;-moz-backface-visibility: hidden;backface-visibility: hidden;-webkit-transition: all 0.6s ease-in-out;-moz-transition: all 0.6s ease-in-out;-o-transition: all 0.6s ease-in-out;transition: all 0.6s ease-in-out;color:#e23a6e;font-weight:bold; } .panel{background:#fff;overflow: hidden; } /*动画*/ #nav1:checked ~ .scroll #panel1 h1{-webkit-animation: moveDown 0.6s ease-in-out 0.2s backwards;-o-animation: moveDown 0.6s ease-in-out 0.2s backwards;animation: moveDown 0.6s ease-in-out 0.2s backwards; } #nav2:checked ~ .scroll #panel2 h1{-webkit-animation: moveDown 0.6s ease-in-out 0.2s backwards;-o-animation: moveDown 0.6s ease-in-out 0.2s backwards;animation: moveDown 0.6s ease-in-out 0.2s backwards; } #nav3:checked ~ .scroll #panel3 h1{-webkit-animation: moveDown 0.6s ease-in-out 0.2s backwards;-o-animation: moveDown 0.6s ease-in-out 0.2s backwards;animation: moveDown 0.6s ease-in-out 0.2s backwards; } #nav4:checked ~ .scroll #panel4 h1{-webkit-animation: moveDown 0.6s ease-in-out 0.2s backwards;-o-animation: moveDown 0.6s ease-in-out 0.2s backwards;animation: moveDown 0.6s ease-in-out 0.2s backwards; } #nav5:checked ~ .scroll #panel5 h1{-webkit-animation: moveDown 0.6s ease-in-out 0.2s backwards;-o-animation: moveDown 0.6s ease-in-out 0.2s backwards;animation: moveDown 0.6s ease-in-out 0.2s backwards; } @keyframes moveDown {0%{-webkit-transform: translateY(-40px);-moz-transform: translateY(-40px);-ms-transform: translateY(-40px);-o-transform: translateY(-40px);transform: translateY(-40px);opacity:0;}100%{-webkit-transform: translateY(0);-moz-transform: translateY(0);-ms-transform: translateY(0);-o-transform: translateY(0);transform: translateY(0);opacity:1;} } .panel p{color:#000;margin-top:20px; } #nav1:checked ~ .scroll{-webkit-transform: translateY(0%);-moz-transform: translateY(0%);-ms-transform: translateY(0%);-o-transform: translateY(0%);transform: translateY(0%);} #nav2:checked ~ .scroll{-webkit-transform: translateY(-100%);-moz-transform: translateY(-100%);-ms-transform: translateY(-100%);-o-transform: translateY(-100%);transform: translateY(-100%); } #nav3:checked ~ .scroll{-webkit-transform: translateY(-200%);-moz-transform: translateY(-200%);-ms-transform: translateY(-200%);-o-transform: translateY(-200%);transform: translateY(-200%); } #nav4:checked ~ .scroll{-webkit-transform: translateY(-300%);-moz-transform: translateY(-300%);-ms-transform: translateY(-300%);-o-transform: translateY(-300%);transform: translateY(-300%); } #nav5:checked ~ .scroll{-webkit-transform: translateY(-400%);-moz-transform: translateY(-400%);-ms-transform: translateY(-400%);-o-transform: translateY(-400%);transform: translateY(-400%); } .icon{width:200px;height:200px;background:#fa96b5;-webkit-transform:translateY(-50%) rotate(45deg);-moz-transform:translateY(-50%) rotate(45deg);-ms-transform:translateY(-50%) rotate(45deg);-o-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg);position:absolute;left:50%;top:0;margin-left:-100px; } [data-icon]:after{content:attr(data-icon);width:200px;height:200px;color:#fff;font-size:90px;text-align:center;line-height:200px;position:absolute;left:18%;top:18%;-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-ms-transform: rotate(-45deg);-o-transform: rotate(-45deg);transform: rotate(-45deg); } .panelColor{background:#fa96b5;color:#fff; } .panelColor .icon{background:#fff;color:#fa96b5; } .panelColor .icon:after{color:#fa96b5; } .scroll .panel h1{font-size:60px; } @media screen and (max-device-width: 520px){}
Firefox和chrome测试没问题,IE就算了吧_(:зゝ∠)_,我恨IE
转载于:https://www.cnblogs.com/telwanggs/p/7112307.html
页面平滑过渡全屏切换相关推荐
- h5全屏切换滚动页面html,H5全屏切换
之前有做过一个微信中的H5小项目,其中有一个交互就是点击完按钮,页面由下往上滑动切换至下一页.做完后发现在Android(华为荣耀5a.华为荣耀3c和OPPO A37m)下效果都还好,但在iphone ...
- dplayer js控制 自动全屏_vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】...
最近公司的产品上线,一些高级功能在基础版本中不对用户开发,通过视频的形式展示. 产品开发用的是 vue, 经同事介绍使用了vue-video-player视频播放插件,通过 demo案例很快实现了视频 ...
- vue 全屏 screenfull —— 整页全屏,指定元素全屏,退出全屏,全屏切换等
安装 npm install screenfull --save 使用方法 import screenfull from "screenfull"; 属性 screenfull.i ...
- 【3D商城】鼠标滚动控制全屏切换
[3D商城]鼠标滚动控制全屏切换 ajax请求获取服务器数据 设置加载loading组件 产品列表和场景列表的编写 监听鼠标滚动事件 列表标签中显示设置隐藏属性 头部标签中显示设置隐藏属性 结果 aj ...
- 为所有弹窗增加全屏切换功能
1.现状 在开发两个管理系统,现在的页面20+,其中包含不少的弹窗.在项目开发过程中没人提过弹窗要全屏的事情,且在数据量较大的位置已经增加了可全屏的入口.但老板两次说为什么不给所有的弹窗增加全屏的功能 ...
- 远程桌面退出全屏/不能全屏/全屏切换的技巧
远程桌面退出全屏/不能全屏/全屏切换的技巧退出全屏 问:我的电脑远程登录到服务器上并且切换到了全屏状态,全屏后发现桌面顶部没有浮动工具栏了,想退出全屏状态,不知如何退出了,最后,只有重启电脑.想知道如 ...
- VirtualBox全屏切换
用VirtualBox的时候,如果设置为全屏,想再切换回来,没有什么菜单,只有通过键盘的快捷键来操作,才可以恢复. 我常常忘掉,所以老是得去找,以后需要记住这几个按键的快捷键. 1.全屏与非全屏切换: ...
- 视频全屏非全屏切换,状态栏动态显示隐藏兼容性解决
列表中视频全屏/非全屏切换时,需要动态显示/隐藏状态栏 View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐 ...
- PPAPI插件的全屏切换处理
有时你会想让PPAPI插件全屏(比如播放视频时),这次来看看怎么做. PPAPI和CEF App两侧都要处理. foruok原创,转载请注明出处.欢迎关注foruok的订阅号"程序视界&qu ...
最新文章
- GA(遗传算法)的Matlab程序原理(from:六分之一工作室)
- 来看看C# ObservableCollection和List的区别
- 新手用python2还是3-Python 使用情况调查:2还是3?(附致歉声明)
- WebAssembly和Blazor:解决了一个存在十年的老问题
- 细说ReactiveCocoa的冷信号与热信号(三):怎么处理冷信号与热信号
- 索引的使用规则和设计考虑
- Java G1 GC 垃圾回收深入浅出
- 每日算法系列【LeetCode 1053】交换一次的先前排列
- Python中的字典数据结构
- JAVA JDK API查看方法
- 学汽车故障计算机排除怎么样,汽车故障清除后就没事了么?
- ECharts实现数据可视化入门教程(超详细)
- java写颜色识别_Java+Opencv 颜色识别
- xp系统打开计算机硬盘分区,详解WindowsXP硬盘分区步骤
- 撒大飒飒撒大声地撒萨达
- 【Python 邮件合并 pandas mailmerge】
- linux系统下一页,linux下一页
- 惠普HP Deskjet F4238 多功能一体机驱动
- 笔记本电脑怎样当无线服务器,笔记本当无线路由器怎么设置【详细步骤】
- Android 9.0 flash播放器播放swf源码讲解
热门文章
- linux内核数据结构实现--链表、队列和哈希
- matlab中tr什么意思,tr命令详解
- python的numpy库结构_NumPy构成了数据科学领域中许多Python库的基础。
- 13000.tcp服务器简易示例程序(linux)
- spring事务管理器的作用_【面试必问】Spring中的事务管理详解
- 思维导图_教学工具思维导图
- Linux内核分析 - 网络[一]:收发数据包的调用
- mini2440驱动分析之触摸屏
- OpenCV的DNN模块
- 长沙中职英语计算机等级考试查询,湖南省中等职业教育公共基础课达标训练英语291-300...