纯CSS与JavaScript实现下拉菜单及登录弹窗
作者:白露时间:2026-10-22 06:56:35浏览:241
本文详细讲解了如何使用JavaScript结合CSS实现常见的下拉菜单列表与登录注册弹窗效果。通过具体的HTML结构、CSS样式控制以及JS事件监听,展示了按钮悬停展开子菜单以及点击触发遮罩层弹窗的完整实现过程,为前端初学者提供实用的交互组件开发参考。
下拉菜单列表实现
首先介绍下拉菜单列表的实现方式。
<style>
*{
margin: 0px;
padding: 0px;
}
.menu{
width: 1100px;
height: 30px;
background-image: url(img/魅力罗兰Music炫图18.jpg);
margin-left: 200px;
margin-top: 50px;
}
.btn{
width: 183.3px;
height: 30px;
float: left;
text-align: center;
line-height: 30px;
font-size: 14px;
position: relative;
overflow: hidden;
transition: 0.5s;
}
.btn:hover{
cursor: pointer;
background-color: burlywood;
color: white;
max-height: 200px;
overflow: visible;
}
.btn ul{
list-style: none;
background-color: #008000;
}
</style>
<body>
<div class="menu">
<div class="btn">罗兰首页</div>
<div class="btn">歌曲专栏
<ul>
<li>流行</li>
<li>摇滚</li>
<li>蓝调</li>
<li>民谣</li>
</ul>
</div>
<div class="btn">音乐人专栏
<ul>
<li>内地</li>
<li>欧美</li>
<li>日韩</li>
<li>港台</li>
</ul>
</div>
<div class="btn">乐器专栏
<ul>
<li>钢琴</li>
<li>小提琴</li>
<li>吉他</li>
<li>架子鼓</li>
</ul>
</div>
<div class="btn">戏曲专栏
<ul>
<li>京剧</li>
<li>话剧</li>
<li>豫剧</li>
<li>黄梅戏</li>
</ul>
</div>
<div class="btn">魅力ROLAND体验区
<ul>
<li>新曲</li>
<li>唱片</li>
<li>MV</li>
</ul>
</div>
</div>
</body>
登录注册弹窗实现
接着展示登录注册弹窗效果的实现逻辑。
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
* {
margin: 0px;
padding: 0px;
}
.login {
width: 100px;
height: 30px;
font-size: 25px;
line-height: 30px;
border: 1px solid black;
text-align: center;
background-color: darkcyan;
color: white;
}
.login:hover {
cursor: pointer;
background-color: greenyellow;
}
.mask {
width: 100%;
background-color: black;
opacity: 0.5;
position: absolute;
top: 0px;
left: 0px;
z-index: 90;
}
.log-div {
width: 500px;
height: 300px;
background-color: white;
position: fixed;
z-index: 99;
}
</style>
</head>
<body>
<div class="mask" hidden></div>
<div class="log-div" hidden="hidden"></div>
<div class="login">登 录</div>
<p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
<p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
<p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
<p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
</body>
</html>
<script>
var mask = document.getElementsByClassName("mask")[0];
var login = document.getElementsByClassName("log-div")[0];
var btn = document.getElementsByClassName("login")[0];
var clientWidth = document.body.clientWidth;
var clientHeight = document.documentElement.clientHeight;
login.style.left = clientWidth / 2 - 250 + "px";
login.style.top = clientHeight / 2 - 150 + "px";
mask.style.height = document.body.clientHeight + "px";
window.onresize = function() {
var clientWidth = document.body.clientWidth;
var clientHeight = document.documentElement.clientHeight;
login.style.left = clientWidth / 2 - 250 + "px";
login.style.top = clientHeight / 2 - 150 + "px";
}
btn.onclick = function(){
mask.removeAttribute("hidden");
login.removeAttribute("hidden");
}
mask.onclick = function(){
mask.setAttribute("hidden","");
login.setAttribute("hidden","hidden");
}
</script>
上述内容分享了利用JavaScript实现下拉菜单列表与登录注册弹窗效果的完整方案,旨在为读者提供实际开发中的参考示例,欢迎进一步探讨与支持。
作者最新文章
AOS.js 动画不触发怎么办?排查 DOM 加载与移动端兼容问题
2026-11-05 17:02:26
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
2026-11-05 15:03:27
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
2026-11-05 13:43:48
主流JS弹幕库选型指南:Danmaku.js等库的功能与体积对比
2026-11-05 09:28:19
JavaScript点击事件监听与交互效果实例
2026-11-05 09:10:19
