需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:index.html,编写问题基础代码。
2、在index.html中的<script>标签,输入js代码:$('button').click(function(){$('#123').css('display','block')})。
3、浏览器运行index.html页面,此时点击btn按钮后,div的内容成功被显示了出来。
参考如下:
<input type="text">
<div id="divShow" style="display:noneposition:absolute">显示的内容;</div>
display:none,表示此层隐藏;
position:absolute,表示此层的为绝对位置,方便后期进行绝对定位
添加事件,完成效果;
<script type="text/javascript">
function showDiv(obj) {
// 保存元素;
var el = obj
// 获得元素的左偏移量;
var left = obj.offsetLeft
// 获得元素的顶端偏移量;
var top = obj.offsetTop
// 循环获得元素的父级控件,累加左和顶端偏移量;
while (obj = obj.offsetParent) {
left += obj.offsetLeft
top += obj.offsetTop
}
// 设置层的坐标并显示;
document.all.divShow.style.pixelLeft = left
// 层的顶端距离为元素的顶端距离加上元素的高;
document.all.divShow.style.pixelTop = top + el.offsetHeight
document.all.divShow.style.display = "block"
}
</script>
<style>
#divShow
{
width:150px
height:180px
border-width:thin
background:yellow
}
</style>
<input type="text" onfocus="showDiv(this)">
<div id="divShow" style="display:noneposition:absolute">显示的内容;</div>
注意:
offsetLeft和OffsetTop不是获得元素和页面的距离,只是获得元素和父元素的的距离,所以要进行while循环一层层累加距离,最后得到元素和页面之间的距离
层次关系:本元素->父元素->……>body->null,当为null时,退出while循环。
最终效果如下:
1、利用js代码首先创建一个div,document.createElement('div')2、确认div添加位置,可以在某个dom元素后面,或者通过css属性控制具体位置,主要通过left/top等属性控制。 3、确定位置之后,显示div即可。 示例:比如html中有一个文本输入框,...