< !doctype html>
< html lang="es-UY">
< head>
< title>test< /title>
< script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript">< /script>
< /head>
< body>
< script>
/**
* disablingFocus - disable all the document instead a single element - put 4 masks around the given element
so it appear that all except that element is disabled. */
var lib = {
maskStyle: {
zIndex: 9998,
position: "absolute",
display: "block",
opacity: 0.5,
backgroundColor: "#111111"
},
mask: null,
disableAllBut: function(el) {
if(!lib.masks) {
lib.masks=[];
for(var i = 0; i< 4; i++) {
var maskEl = document.createElement("div");
document.body.appendChild(maskEl);
$(maskEl).attr({id: "disableAllButMask"+i});
$(maskEl).css(lib.maskStyle);
lib.masks.push(maskEl)
}
}
var x = $(el).offset().left,
y = $(el).offset().top,
w = $(el).width(),
h = $(el).height();
var maxWidth = 3333, //$(document.body).offset().width,
maxHeight = 3333; //$(document.body).offset().height;
$(lib.masks[0]).css({
"left": "0px", "top": "0px", "height": y+"px", "width": maxWidth+"px"
});
$(lib.masks[1]).css({
"left": "0px", "top": (y+h)+"px", "height": maxHeight+"px", "width": maxWidth+"px"
});
$(lib.masks[2]).css({
"left": 0+"px", "top": (y)+"px", "height": h+"px", "width": x+"px"
});
$(lib.masks[3]).css({
"left": (x+w)+"px", "top": (y)+"px", "height": h+"px", "width": maxWidth+"px"
})
},
"":""
};
window.disabler=lib;
window.disableAllBut=lib.disableAllBut;
< /script>
< style type="text/css">
< /style>
< div class="apagado">
hola 1
< table>
< tr>< td>hola hola< /td>
< td>
< div class="prendido">
hola 2< p>hhhhh< a href="">hshshs< /a>< /p>
< /div>
< /td>
< /tr>
< tr>
< div id='div3'>
hola 3 asd < span id="div4">asd< /span> as d
< /div>
< /tr>
< /table>
< /div>
< button onclick="disableAllBut(document.getElementById('div4'))">click me for the disabling< /button>
< /html>
The blog of Sebastián Gurin about software development. "A place to store those little things that time will erase if not written...."
lunes, 2 de julio de 2012
Disable all but one html element with jquery
They asked me to be able to disable all the html document but a single html element. Have done this with jquery like the following html snippet. The idea is to add 4 absolute positioned boxed "around" the given element, with big z-index with some transparency:
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario