[英]Set position of div dynamically
我必須創建一個搜索結果框。 每當用戶在搜索文本框中鍵入內容時,結果列表將填充在文本框下方的搜索結果框中。 我可以在只有一個搜索框實例的情況下執行此操作(調用方是單個文本框)。 當同一搜索框用於多個文本框時,會發生此問題。 我希望它根據呼叫者文本框調整其位置。 這是代碼:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style>
.searchDiv {
border: 1px solid red;
width:150px;
height:100px;
visibility: hidden;
}
</style>
<script>
showSearchBox = function (_element) {
var _div = document.getElementById('divSearch');
_div.style.visibility = 'visible';
}
hideSearchBox = function () {
var _div = document.getElementById('divSearch');
_div.style.visibility = 'hidden';
}
</script>
</head>
<body>
<table border="0" style="width: 50%">
<tbody>
<tr>
<td style="width: 50%">
<input type="text" id="txtFirstName" name="txtFirstName" onfocus="showSearchBox(this)" onblur="hideSearchBox()" />
</td>
<td style="width: 50%">
<input type="text" id="txtLastName" name="txtLastName" onfocus="showSearchBox(this)" onblur="hideSearchBox()"/>
</td>
</tr><tr>
<td colspan="2" style="width: 100%">
This is just a placeholder text.
</td>
</tr>
<tr>
<td colspan="2" style="width: 100%">
<div id="divSearch" class="searchDiv"></div>
</td>
</tr>
</tbody>
</table>
</body>
</html>
我需要在代碼中進行哪些更改? 您也可以查看jsfiddle
將此添加到您的show div方法。 擺弄 。 為了使其更通用,可以使用父級的頂部和左側值。 還要添加position:relative
對於您的div
var parentPositionLeft = _element.getBoundingClientRect().left;
var parentPositionTop = _element.getBoundingClientRect().top;
_div.style.left = parentPositionLeft+'px';
_div.style.top = parentPositionTop+'px';
console.log(_div.style.left);
我想您有簡單的javascript,因此在這種情況下,您需要像下面這樣更改函數showSearchBox
函數:
showSearchBox = function (_element) {
var _div = document.getElementById('divSearch');
var input = _element.getBoundingClientRect();
_div.style.left = input.left + 'px';
_div.style.top = input.top + 'px';
_div.style.visibility = 'visible';
}
並將此規則添加到您的CSS類.searchDiv
:
position: relative;
這是一個小提琴
您可以使用jQuery修改.searchDiv的位置。
$(".searchDiv").css({top: 55, left: 220, position:'absolute'});
首先,您必須找出放置它的文本框的確切位置,然后將該Div絕對正確地放置在該位置的上下位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.