我是新手,所以请善待(;
我正在尝试使用 Greasemonkey 添加 div 层,但我无法让它正常工作。
我的最终目标是让用户在屏幕上绘制一个窗口(或单击两次),并且除此区域之外的所有内容都应该淡出(添加深色 div 层)。
但是,现在我只想为每个站点添加一个可见层。这是我的第一次尝试(根本没有用):
var CSSNJE = '#Test_divnje {height:100px; width:100px; background-color:red;
position:absolute; top: 200px; left: 400px; z-index:2147483647}';
var CSSNJE = '<style type="text/css">'+ CSSNJE +'</style>';
document.write(CSSNJE);
var DIVNJE = '<DIV id="Test_divnje"></DIV>';
document.write(DIVNJE);
我用谷歌搜索了这段代码,它适用于某些页面但不是很多:
makeLayer('LYR1',400,250,100,100,'red',1,2147483647);
function makeLayer(id,L,T,W,H,bgColor,visible,zIndex) {
if (document.getElementById) {
if (document.getElementById(id)) {
alert ('Layer with this ID already exists!');
return;
}
var ST = 'position:absolute'
+'; left:'+L
+'; top:'+T
+'; width:'+W
+'; height:'+H
+'; clip:rect(0,'+W+','+H+',0)'
+'; visibility:'
+(null==visible || 1==visible ? 'visible':'hidden')
+(null==zIndex ? '' : '; z-index:'+zIndex)
+(null==bgColor ? '' : '; background-color:'+bgColor);
var LR = '<DIV id='+id+' style="'+ST+'"></DIV>'
if (document.body) {
if (document.body.insertAdjacentHTML)
document.body.insertAdjacentHTML("BeforeEnd",LR);
else if (document.createElement
&& document.body.appendChild) {
var newNode = document.createElement('div');
newNode.setAttribute('id',id);
newNode.setAttribute('style',ST);
document.body.appendChild(newNode);
}
}
}
}
首先,我认为z-index
我的 div 层太低了,我的 div 层就在可见层的后面(这就是为什么我的索引现在这么高)但是使用更高的索引并没有帮助。
我也尝试过使用position:fixed
,因为我读到这可能会有所帮助,但没有。
如何制作有效的叠加层?