html+css实现三条横线点击变叉导航菜单

使用html+css实现三条横线的菜单按钮,点击弹出列表菜单,菜单按钮变叉,点击叉按钮或点击列表项收回菜单:

点击按钮:

点击叉按钮或者菜单列表项都可以收回菜单。

css代码:

.inner-header{
	background-color: rgba(0,0,0,1);
	width: 100%;
	height: 50px;
	position: absolute;
	top: 0px;
	left: 0px;
}
.inner-header-icon{
	color: #ffffff;
	height: 50px;
	font-size:25px;
	text-align: center;
	float:right;
	width: 50px;
	position: relative;
	-webkit-transition: background 0.5s;
	-moz-transition: background 0.5s;
	-o-transition: background 0.5s;
	transition: background 0.5s;
}
.inner-header-icon:hover{
	background-color: rgba(255,255,255,0.2);
	cursor: pointer;
}
.inner-header-icon span{
	position: absolute;
	left: calc((100% - 25px) / 2);
	top: calc((100% - 1px) / 2);
	width: 25px;
	height: 1px;
	background-color: rgba(255,255,255,1);
}
.inner-header-icon span:nth-child(1){
	transform: translateY(4px) rotate(0deg);
}

.inner-header-icon span:nth-child(2){
	opacity: 0;
}

.inner-header-icon span:nth-child(3){
	transform: translateY(-4px) rotate(0deg);
}


.inner-header-icon-click span:nth-child(1){
	animation-duration: 0.5s;
	animation-fill-mode: both;
	animation-name: clickfirst;
	}

.inner-header-icon-click span:nth-child(2){
	animation-duration: 0.5s;
	animation-fill-mode: both;
	animation-name: clicksecond;
}

.inner-header-icon-click span:nth-child(3){
	animation-duration: 0.5s;
	animation-fill-mode: both;
	animation-name: clickthird;
	}


/*第一条线旋转动画*/
@keyframes clickfirst {
  0% {
	  transform: translateY(4px) rotate(0deg);
	  
  }

  100% {
    transform: translateY(0) rotate(45deg);
  }
}
/*第二条线淡入淡出动画动画*/
@keyframes clicksecond {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

/*第三条线旋转动画*/
@keyframes clickthird {
  0% {
	  transform: translateY(-4px) rotate(0deg);
  }

  100% {
    transform: translateY(0) rotate(-45deg);
  }
}	

.inner-header-icon-out span:nth-child(1){
	animation-duration: 0.5s;
	animation-fill-mode: both;
	animation-name: outfirst;
	}

.inner-header-icon-out span:nth-child(2){
	animation-duration: 0.5s;
	animation-fill-mode: both;
	animation-name: outsecond;
}
.inner-header-icon-out span:nth-child(3){
	animation-duration: 0.5s;
	animation-fill-mode: both;
	animation-name: outthird;
	}

@keyframes outfirst {
  0% {
    transform: translateY(0) rotate(-45deg);
  }

  100% {
    transform: translateY(-4px) rotate(0deg);
  }
}

@keyframes outsecond {
  0% {
    opacity: 0;
  }

  100% {
	  opacity: 1;
  }
}

@keyframes outthird {
	0% {
		transform: translateY(0) rotate(45deg);
	}

	100% {
		transform: translateY(4px) rotate(0deg);
	}
}

.inner-nav{
	background-color: rgba(0,0,0,0.9);
	width: 100%;
	position: absolute;
	top: 50px;
	left: 0px;
	padding-top: 30px;
	padding-bottom: 80px;
	display: none;
}
.inner-nav a{
	display: inline-block;
	line-height: 50px;
	text-decoration: none;
	width: 80%;
	margin-left: 10%;
	color: #FFFFFF;
	border-bottom: solid 1px rgba(255,255,255,0.3);
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;
	font-weight:300;
}
.inner-nav a:hover{
	color: rgba(255,255,255,0.4);
	border-bottom: solid 1px rgba(255,255,255,0.2);
}

html代码:(使用代码时记得引入jquery-2.1.1.min.js文件)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="menu.css" rel="stylesheet" type="text/css"/>

</head>
<body>
<div>
    <div class="inner-header">
        <!--两条横线菜单-->
        <div class="inner-header-icon inner-header-icon-out"><span></span><span></span><span></span></div>
    </div>
    <!--菜单展开项-->
    <div class="inner-nav">
        <a href="#">第一页</a>
        <a href="#">第二页</a>
        <a href="#">第三页</a>
    </div>
</div>
<script src="js/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
    $(window).load(function () {
        $(".inner-header-icon").click(function(){//点击菜单按钮事件
            $(this).toggleClass("inner-header-icon-click inner-header-icon-out");
            $(".inner-nav").slideToggle(250);
        });
        $(".inner-nav").click(function () {//点击菜单列表项,收回菜单
            $(".inner-header-icon").click();//触发菜单按钮点击事件
        });
        $(".nner-nav a").each(function( index ) {
            $( this ).css({'animation-delay': (index/10)+'s'});
        });
    });
</script>
</body>
</html>

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用HTMLCSS结合JavaScript来实现点击扇形展开效果菜单。以下是一个简单的示例: HTML代码: ```html <div class="circle-menu"> <div class="circle-menu-item" id="item1"></div> <div class="circle-menu-item" id="item2"></div> <div class="circle-menu-item" id="item3"></div> <div class="circle-menu-item" id="item4"></div> <div class="circle-menu-item" id="item5"></div> <div class="circle-menu-item" id="item6"></div> <div class="circle-menu-item" id="item7"></div> <div class="circle-menu-item" id="item8"></div> <div class="circle-menu-item" id="item9"></div> <div class="circle-menu-item" id="item10"></div> <div class="circle-menu-item" id="item11"></div> <div class="circle-menu-item" id="item12"></div> <div class="circle-menu-trigger"></div> </div> ``` CSS样式: ```css .circle-menu { position: relative; width: 200px; height: 200px; margin: 50px auto; } .circle-menu-item { position: absolute; top: 50%; left: 50%; width: 50px; height: 50px; margin: -25px 0 0 -25px; border-radius: 50%; background-color: #333; opacity: 0; transform: scale(0); transition: all 0.3s ease-in-out; } .circle-menu-trigger { position: absolute; top: 50%; left: 50%; width: 50px; height: 50px; margin: -25px 0 0 -25px; border-radius: 50%; background-color: #fff; border: 2px solid #333; cursor: pointer; z-index: 100; } .circle-menu-trigger.active ~ .circle-menu-item { opacity: 1; transform: scale(1); } #item1 { transform: translate(-100px, 0); } #item2 { transform: translate(-70px, -70px); } #item3 { transform: translate(0, -100px); } #item4 { transform: translate(70px, -70px); } #item5 { transform: translate(100px, 0); } #item6 { transform: translate(70px, 70px); } #item7 { transform: translate(0, 100px); } #item8 { transform: translate(-70px, 70px); } #item9 { transform: translate(-85px, -30px); } #item10 { transform: translate(85px, -30px); } #item11 { transform: translate(85px, 30px); } #item12 { transform: translate(-85px, 30px); } ``` JavaScript代码: ```javascript var trigger = document.querySelector('.circle-menu-trigger'); trigger.addEventListener('click', function() { trigger.classList.toggle('active'); }); ``` 在上面的示例中,通过HTML代码定义了一个菜单圆形容器和12个菜单项,以及一个触发器元素。通过CSS样式定义了菜单项的样式和触发器的样式,并且通过CSS3动画将菜单项隐藏,并在触发器被激活时显示。通过JavaScript代码监听点击触发器的事件,并在触发器被点击切换样式类,从而实现菜单的展开和收缩效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值