您现在的位置是:网站首页> 编程资料编程资料
HTML+Sass实现HambergurMenu(汉堡包式菜单)Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码html5写一个BUI折叠菜单插件的实现方法html 仿百度百科导航下拉菜单功能HTML+CSS实现下拉菜单的实现Html屏蔽右键菜单和左键划字功能的示例HTML+CSS实现简单下拉菜单效果HTML5中原生的右键菜单创建方法HTML5手机端弹出遮罩菜单特效代码基于HTML5代码实现折叠菜单附源码下载html 可输入下拉菜单的实现方法
2021-08-29
1323人已围观
简介 这篇文章主要介绍了HTML+Sass实现HambergurMenu,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
前几天看了国外一个大佬用HTML+CSS实现HamburgerMenu的视频,然后最近在看Sass,所以用Sass来实现一下。
最终效果图如下:

在VS Code中的文件结构(编译scss文件用的是easy sass):

页面结构(index.html):
_config.scss:
/*设置颜色及max-width*/ $primary-color: rgba(13,110,139,.75); $overlay-color: rgba(24,39,51,.85); $max-width: 980px; /*设置文本颜色,如果背景色浅,则设置为黑色,否则设置为白色*/ @function set-text-color($color){ @if(lightness($color)>70){ @return #333; }@else{ @return #fff; } } /*混合器,设置背景色及文本颜色*/ @mixin set-background($color){ background-color: $color; color: set-text-color($color); }style.scss:
@import '_config'; *{ margin: 0; padding: 0; } .container{ max-width: $max-width; margin: 0 auto; } /*给showcase设置背景颜色,利用伪类再添加一个背景图,同时将背景图的z-index设置为-1(这样图片会显示在里面); 然后为了让文字显示在中间,所以使用flex布局*/ .showcase{ position: relative; height: 100vh; background-color: $primary-color; &:before{ content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: url('../img/pexels-photo-533923.jpeg') no-repeat center center / cover; z-index: -1; } &-inner{ display: flex; height: 100%; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: #fff; font-weight: 100; h1{ font-size: 4rem; padding: 1.2rem 0; } p{ white-space: pre-wrap; font-size: 1.6rem; padding: 0.85rem 0; } .btn{ padding: .65rem 1rem; /*使用混合器设置背景色及文本颜色*/ @include set-background(lighten($primary-color,30%)); border: none; border: 1px solid $primary-color; border-radius: 5px; text-decoration: none; outline: none; transition: all .2s ease .1s; /*按钮hover的时候利用css3的scale设置一个缩放效果*/ &:hover{ @include set-background(lighten($overlay-color,30%)); border-color: lighten($overlay-color, 25%); transform: scale(.98); } } } } /*原理:通过checkbox的点中与否来进行样式的变化(将checkbox透明度设置为0,z-index设置更高),单击时,会出现菜单,再次点击,菜单消失*/ /*给menu-wrap设置fixed,这样showcase就会占满整个屏幕;同时将checkbox的opacity设置为0; 另外注意,需要将checkbox的z-index设置为2,因为hamburger的z-index设置为1,不然会点击不起作用 */ .menu-wrap{ position: fixed; left: 0; top: 0; z-index: 1; .toggle{ position: absolute; left: 0; top: 0; width: 50px; height: 50px; opacity: 0; z-index: 2; cursor: pointer; /*当checkbox为checked时,设置hamburger里面的div及伪类的旋转效果*/ &:checked ~ .hamburger>div{ transform: rotate(135deg); /*伪类实际上旋转了225度,需要将top设置为0,不然形成的❌长短不一致*/ &:before,&:after{ transform: rotate(90deg); top: 0; } } /*当checkbox选中时再hover,也会设置一个旋转效果*/ &:checked:hover ~ .hamburger>div{ transform: rotate(235deg); } &:checked ~ .menu{ visibility: visible; >div{ transform: scale(1); >div{ opacity: 1; } } } } .hamburger{ position: absolute; left: 0; top: 0; width: 60px; height: 60px; padding: 1rem; background-color: $primary-color; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; z-index: 1; /*div自身生成中间的横线,然后设置定位为relative,后面再将其伪类设置为absolute, 相对于div进行偏移*/ >div{ position: relative; left: 0; top: 0; width: 100%; height: 2px; background-color: #fff; transition: all .7s ease; /*利用伪类生成第一条和第三条横线*/ &:before, &:after{ content: ''; position: absolute; left: 0; top: -10px; width: 100%; height: 2px; background-color: inherit; } &:after{ top: 10px; } } } /*设置选中后的菜单的样式*/ /*将menu设置为fixed,同时宽高为100%,然后设置display为flex,否则菜单不会出现在中间*/ .menu{ position: fixed; left: 0; top: 0; width: 100%; height: 100%; overflow: hidden; display: flex; justify-content: center; align-items: center; visibility: hidden; /*将菜单设置为不可见,然后在checkbox选中时设置为可见*/ transition: all .75s ease; >div{ @include set-background($overlay-color); width: 200vw; height: 200vh; overflow: hidden; border-radius: 50%; display: flex; justify-content: center; align-items: center; text-align: center; transform: scale(0); transition: all .4s ease; >div{ max-width: 90vw; max-height: 90vh; opacity: 0; transition: all .4s ease; >ul>li{ list-style: none; font-size: 2rem; padding: .85rem 0; text-transform: uppercase; transform: skew(-5deg,-5deg) rotate(5deg);/*设置文字倾斜*/ a{ color: inherit; text-decoration: none; transition: color .4s ease; } } } } } }到此这篇关于HTML+Sass实现HambergurMenu(汉堡包式菜单)的文章就介绍到这了,更多相关HTML+Sass实现HambergurMenu内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- HTML+CSS+JS模仿win10亮度调节效果的示例代码纯html+css实现Element loading效果纯html+css实现奥运五环的示例代码HTML+CSS实现导航条下拉菜单的示例代码html+css实现滚动到元素位置显示加载动画效果纯html+css实现打字效果html+css实现环绕倒影加载特效html输入两个数实现加减乘除功能html中显示特殊符号(附带特殊字符对应表)关于html选择框创建占位符的问题html css3不拉伸图片显示效果
- HTML基本标签及结构详解入门:HTML的基本标签和属性简单介绍入门:HTML的基本标签和属性简单介绍html5组织文档结构_动力节点Java学院整理 html5页面结构_动力节点Java学院整理 HTML基本结构_动力节点Java学院整理 HTML5的文档结构和新增标签完全解析HTML5文档结构标签
- html 指定页面字符集的两种方法HTML用户注册页面设置源码html父子页面iframe双向发消息的实现示例多个HTML页面共同调用一段html代码的方法在html页面中取得session中的值的方法html5关于外链嵌入页面通信问题(postMessage解决跨域通信)HTML5公共页面提取作为公用代码的方法html页面展示json数据并格式化的方法HTML页面自适应宽度的table(表格)HTML5页面无缝闪开的问题及解决方案html5视频自动横过来自适应页面且点击播放功能的实现
- 当div设置contentEditable=true时,重置其内容后无法光标定位contenteditable元素的placeholder输入提示语设置方法使用HTML5中的contentEditable来将多行文本自动增高设置contenteditable属性可编辑HTML标签的内容(可代替textarea)
- HTML用户注册页面设置源码HTML绘制用户注册页面 Html5实现用户注册自动校验功能实例代码
- 详解HTML元素的height、offsetHeight、clientHeight、scrollTop等梳理火狐在用offsetHeight获取div的高度时为0的解决方法页面位置 top、postop、scrolltop、offsetTop、scrollHeight、offsetHe
- 利用div+css3实现一个背景渐变的button按钮的示例代码纯CSS3制作的圆形修边渐变按钮动画特效源码纯CSS3制作圆形渐变的按钮悬停ui特效源码css3实现的鼠标悬浮按钮发光渐变动画特效源码CSS3点击按钮实现背景渐变动画效果纯CSS3实现的颜色渐变的一级横向导航按钮菜单效果纯CSS3 gradient属性制作36种漂亮的html网页渐变按钮样式
- html+css实现血轮眼轮回眼特效代码html+css实现图片扫描仪特效 html+css实现充电水滴融合特效代码
- html父子页面iframe双向发消息的实现示例HTML阻止iframe跳转页面并使用iframe在页面内嵌微信网页版的实现方法HTML中iFrame标签的两个用法介绍html悬浮框架的设置使用示例(iframe加载html)HTML5 window/iframe跨域传递消息 API介绍html Frame、Iframe、Frameset 的区别 HTML网页制作教程 谨慎使用iframe标记HTML iframe 用法总结收藏
- Html分层的box-shadow效果的示例代码html5 分层屏幕适配的方法使用分层画布来优化HTML5渲染的教程
