自制响应式导航栏

自己弄着玩的,当做参考就行。

PC端:

手机端:(点击“导航”即可隐藏和展示导航栏,一开始导航栏是隐藏的)

 

话不多说直接放代码:

HTML:

        <ul class="bignav">
			<div class="mybottom"></div>
			<li class="first"><a href="javascript:;">home</a></li>
			<li><a href="javascript:;">show</a></li>
			<li><a href="javascript:;">suggest</a></li>
			<li><a href="javascript:;">about</a></li>
			<li><a href="javascript:;">more</a></li>
		</ul>
		<div class="smallnav">
			<div class="unfold">导航</div>
			<div class="home"><a href="javascript:;">home</a></div>
			<div class="show"><a href="javascript:;">show</a></div>
			<div class="suggest"><a href="javascript:;">suggest</a></div>
			<div class="about"><a href="javascript:;">about</a></div>
			<div class="more"><a href="javascript:;">more</a></div>
		</div>

CSS:

            body {
				background-color: #8ab9ff;
			}

			ul {
				width: 500px;
				height: 66px;
				background-color: #ffffff;
				display: flex;
				justify-content: space-around;
				align-items: center;
				border-radius: 30px;
				box-shadow: 1px 5px 10px rgba(0, 0, 0, 0.5);
				padding: 0px;
				margin: 0px;
				position: relative;
			}

			ul li {
				list-style: none;
				width: 82px;
				height: 40px;
				line-height: 40px;
				background-color: rgba(0, 0, 255, 0.3);
				box-shadow: 1px 2px 3px rgba(85, 0, 127, 0.3);
				text-align: center;
				border-radius: 30px;
				transition: all .6s;
				cursor: pointer;
			}

			ul li a {
				text-decoration: none;
				color: #ffffff;
				font-weight: 500;
			}

			.mybottom {
				width: 82px;
				height: 10px;
				border-radius: 30px;
				background: linear-gradient(to right, #55aaff, #55aaff);
				position: absolute;
				bottom: 1px;
				transition: all .3s;
				opacity: 0;
				animation: mybottombgcolor 1.5s infinite linear;
			}

			@keyframes mybottombgcolor {
				from {
					background: #55aaff;
				}

				33.3% {
					background: #aaff7f;
				}

				66.6% {
					background: #00aaff;
				}

				to {
					background: #55aaff;
				}
			}

			.mybg {
				background-color: #55aaff;
			}
			
			.bignav{
				position: fixed;
				right: 10px;
			}

			.smallnav {
				width: 150px;
				height: 220px;
				position: fixed;
				right: 10px;
			}

			.unfold {
				width: 88px;
				height: 40px;
				background-color: #55aaff;
				box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.4);
				border-radius: 20px;
				position: absolute;
				right: 0;
				top: 0;
				color: #ffffff;
				line-height: 40px;
				text-align: center;
				cursor: pointer;
				font-size: 1.1em;
			}

			.home a,
			.show a,
			.suggest a,
			.about a,
			.more a {
				text-decoration: none;
				color: #ffffff;
			}

			.home,
			.show,
			.suggest,
			.about,
			.more {
				width: 88px;
				height: 40px;
				background-color: #55aaff;
				box-shadow: 1px 2px 3px rgba(85, 0, 127, 0.3);
				position: absolute;
				font-size: 0.1em;
				color: white;
				cursor: pointer;
				line-height: 40px;
				text-align: center;
				border-radius: 20px;
				display: none;
				font-size: 1.1em;
				right: 0;
			}

			.home {
				top: 45px;
			}

			.show {
				top: 90px;
			}

			.suggest {
				top: 135px;
			}

			.about {
				top: 180px;
			}

			.more {
				top: 225px;
			}

JS:

                $(document).ready(function() {			
				function myresize(){
					if (window.innerWidth <= 666) {
						$('.bignav').hide();
						$('.smallnav').show();
						$('.home,.show,.suggest,.about,.more').hide();
					} else {
						$('.bignav').show();
						$('.smallnav').hide();
					}
				}
				myresize();
				$(window).resize(myresize);
				
				$('.first').addClass('mybg');
				$('li').on({
					mouseout: function() {
						$('.mybottom').css({
							opacity: 0
						});
					},
					mouseover: function() {
						$('.mybottom').css({
							left: $(this).position().left + 'px',
							opacity: 1
						});
					},
					click: function() {
						$(this).siblings().removeClass('mybg');
						$(this).addClass('mybg');
					}
				});
				$('.unfold').on({
					click: function() {
						$('.home,.show,.suggest,.about,.more').slideToggle();
					}
				});
			});

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
响应式导航栏是指在不同的设备屏幕大小下,导航栏能够自适应地改变展示方式以保证用户体验。一般来说,响应式导航栏会在较小屏幕上展示为菜单按钮,点击后展开菜单选项,而在较大屏幕上则会直接展示所有导航选项。下面是一个简单的响应式导航栏HTMLCSS代码示例: HTML代码: ``` <nav> <div class="menu-icon"> <i class="fa fa-bars"></i> </div> <ul class="menu"> <li><a href="#">首页</a></li> <li><a href="#">产品</a></li> <li><a href="#">服务</a></li> <li><a href="#">关于我们</a></li> <li><a href="#">联系我们</a></li> </ul> </nav> ``` CSS代码: ``` nav { display: flex; justify-content: space-between; align-items: center; background-color: #333; color: #fff; padding: 20px; } .menu-icon { cursor: pointer; font-size: 24px; } .menu { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; } .menu li { padding: 10px; } .menu li a { color: #fff; text-decoration: none; } @media only screen and (min-width: 768px) { .menu { flex-direction: row; } .menu li { margin-left: 20px; padding: 0; } .menu-icon { display: none; } } ``` 在上面的代码中,我们使用了Flexbox布局来实现导航栏的水平排列和居中对齐。当屏幕宽度小于768px时,我们通过CSS媒体查询将导航栏的菜单选项改为垂直排列,并展示菜单按钮。点击菜单按钮后,展开菜单选项。当屏幕宽度大于等于768px时,我们将菜单选项改为水平排列,并隐藏菜单按钮。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值