原生JS实现跟随滚动条的登录弹窗与对联广告

作者:闭包旅人时间:2026-10-28 09:50:50浏览:368

本文通过原生JavaScript代码演示如何实现网页中的登录弹窗与对联广告功能。重点解析如何让遮罩层、登录框及两侧广告随页面滚动条自动调整位置,确保用户浏览时始终可见。代码包含详细的HTML结构、CSS样式及JS交互逻辑,适合前端初学者参考学习。

JavaScript实现登录弹窗与滚动跟随对联广告

使用JavaScript编写一个包含遮罩层的登录框以及两侧对联广告,并确保它们能跟随页面滚动条自动移动,使用户在浏览过程中始终能看到这些元素。



时间不早了,直接上干货。以下代码注释非常详尽,请仔细查看。


具体实现代码如下:

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>越狱的囚徒</title>
<style type="text/css">
#zhezhao{ /*遮罩层 初始状态为隐藏,后续通过JS将display属性修改为block以显示*/
position:absolute;
z-index:1000;
background:#ccc;
width:100%;
height:100%;
opacity: 0.8;
filter:alpha(opacity=80);
display:none;
} 
#denglu{ /*登录层 初始状态为隐藏,后续通过JS将display属性修改为block以显示*/
position:absolute;
z-index:2000;
width:100%;
height:200px;
margin:150px auto;
display:none;
} 
#denglu table{ /*表格内容居中显示*/
margin:auto;
} 
.content{
width:800px;
margin:0 auto;
} 
#zuo{ /*左侧浮动广告对联,位于页面左边*/
position:absolute;
left:3px;
top:100px;
border:5px solid purple;
background:#ccc;
color:purple;
font-size:50px;
text-align:center;
height:200px;
width:85px;
z-index:2000;
} 
#you{ /*右侧浮动广告对联,位于页面右边*/
position:absolute;
right:3px;
top:100px;
border:5px solid purple;
background:#ccc;
color:purple;
font-size:50px;
text-align:center;
height:200px;
width:85px;
z-index:2000;
} 
</style>
<script type="text/javascript">
var h=0;
function fun1(){ //此函数用于使登录框和广告框随滚动条自动滚动,保持用户可见性
h=document.body.clientHeight;
document.getElementById('zhezhao').style.height=h+"px";
window.onscroll=function(){
//更新登录框的位置
//计算滚动条距离顶部的偏移量
var t=document.body.scrollTop+document.documentElement.scrollTop;//此写法兼容谷歌和火狐浏览器
//将该偏移值赋给登录层div的margin-top属性
document.getElementById('denglu').style.marginTop=150+t+"px";
document.getElementById('zuo').style.top=100+t+"px";
document.getElementById('you').style.top=100+t+"px";
} 
} 
function show(){ //用于显示相关元素
//显示遮罩层
document.getElementById('zhezhao').style.display='block';
//显示登录层
document.getElementById('denglu').style.display='block';
} 
function hide(){ //用于隐藏相关元素
//隐藏遮罩层
document.getElementById('zhezhao').style.display='none';
//隐藏登录层
document.getElementById('denglu').style.display='none';
} 
</script>
</head>
<body style="margin:0;" onload="fun1();">
<div id="zuo">美<br/>女</div>
<div id="you">帅<br/>哥</div>
<div id="zhezhao"></div>
<div id="denglu">
<div>
<table bgcolor="#ccc" width="350">
<tr>
<td>登录</td><td><a href="javascript:hide();">关闭</a></td>
</tr>
<tr>
<td>账号</td>
<td><input type="text"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登录"/></td>
</tr>
</table>
<a id="a-1" href="javascript:void();">test</a>
</div>
</div>
<a href="javascript:show();">登录</a>
<div class="content" style="background:red;">
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/>
</div>
<div class="content" style="background:green;">
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/>
</div>
<div class="content" style="background:blue;">
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/>
</div>
<br/>
<br/>
</body>
</html>

大家可以自行尝试并进一步完善,这个效果还是比较有趣的。


JavaScript实现登录弹窗与滚动跟随对联广告
作者最新文章