JavaScript实现点击空白处隐藏浮动层与文本框交互
作者:小括号时间:2026-10-27 14:06:29浏览:464
本文介绍如何使用JavaScript实现点击文本框显示浮动层,点击浮动层更新文本框值,以及点击页面空白处自动隐藏浮动层的功能。核心在于利用事件冒泡机制,通过stopPropagation阻止事件向父级传播,从而区分点击目标并执行相应的显示、隐藏或赋值操作。
浮动层与文本框交互逻辑
当文本框获取焦点时,在其正下方显示一个浮动层。
当用户点击除文本框和浮动层之外的页面空白区域时,需要隐藏该浮动层。
当用户点击浮动层内部时,将浮动层的内容赋值给文本框。
JavaScript代码实现
具体实现代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<script language="JavaScript">
function $(id){
return (document.getElementById(id));
}
function show_div(evt) {
var od = $('div1');
var e = window.event || evt;
var o = e.srcElement || e.target;
with (od.style) {
display = 'block';
left = o.offsetLeft + 'px';
top = o.offsetTop + o.offsetHeight + 1 + 'px';
}
}
function hide_div(evt) {
$('div1').style.display = 'none';
}
function control_bubble(oEvent) {
//取消冒泡
oEvent = oEvent || window.event;
if (document.all) {
oEvent.cancelBubble = true;
} else {
oEvent.stopPropagation();
}
};
function fill_input(oEvent) {
$('text1').value = $('div1').innerHTML;
control_bubble(oEvent);
}
window.onload = function() {
$(\"text1\").onfocus = show_div;
document.onclick = function() {
//隐藏层
hide_div();
};
$(\"text1\").onclick = control_bubble;
$(\"div1\").onclick = fill_input;
}
</script>
<body>
<br>
<input type="text" id="text1" value="">
<br>
<div id="div1" align="center",
style="background:#666;position:absolute;overflow:auto;display:none;padding:50px;">点击我</div>
</body>
</html>作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
