DIV 覆盖/重叠其他元素
DIV cover/overlap other element
我想做一个可重用的函数,使我能够轻松地覆盖或重叠一个元素,如选择、文本字段、输入、div、表格等,并用一个半透明的div 到它的确切高度和宽度。
我能够获得元素的位置和大小:
$(element).height()
$(element).width()
$(element).offset().top
$(element).offset().left
但是,如何将元素位置和大小与div 绑定?如果元素位置或大小发生变化,则div 也会发生变化。有什么建议,我该怎么做?或者,是否有任何现有的jquery插件?我相信这对于临时禁用用户交互中的元素以进行 ajax 等操作非常有用。
谢谢。
您可以使用
jQuery .wrap()
函数和适当的CSS来创建函数/插件。
$.fn.overlay = function() {
return this.each(function(){
var $this = $(this);
var left = $this.offset().left;
var top = $this.offset().top;
var width = $this.outerWidth();
var height = $this.outerHeight();
$this.wrap("<div id='overlay'> </div>")
.css('opacity', '0.2')
.css('z-index', '2')
.css('background','gray');
});
};
引导演示:http://bootply.com/87132
这应该普遍工作并且是可重用的......而不仅仅是用于引导元素!
像这样
演示
.css
div {
position:relative;
z-index:1;
height:200px;
width:400px;
background-color:green;
}
div div {
position:absolute;
z-index:2;
top:0px;
bottom:0px;
left:0px;
right:0px;
background-color:black;
opacity:0.5;
}
div div input {
position:relative;
top:25px;
z-index:1;
}
相关文章:
- 如何在不影响其他元素的情况下扩展DIV
- 单击其他元素时,我如何使用 jQuery 忽略更改事件
- 从其他元素上的单击事件访问image src属性
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 将一个元素放在具有相同z索引的其他元素前面
- 将href中的图像替换为其他元素中的图像
- JavaScript删除所有其他元素
- 如何在 *ngFor 列表中显示单击的元素,使用 Angular 2 隐藏其他元素
- 单击更改其他元素源
- JavaScript (w/jQuery) - 当被其他元素包围时,在悬停时增长一个元素以填充容器
- 如何使用可调整大小的元素重叠其他元素
- 如果所有其他元素都填写在AngularJS中,如何动态添加新的输入元素
- 更改包含其他元素的元素的文本
- 将静态标头置于所有其他元素之上
- jQuery或JavaScript获取靠近其他元素的元素
- 从中删除元素'的父元素,并将其附加到其他元素
- 获取更改跨度的值,使其显示为其他元素
- jQuery don'当元素被其他元素检索时,它不能正常工作
- 具有固定元素并填充有其他元素的页面
- Jquery索引与其他元素的关系