Pregunta 1: ¿Por qué no usar uno de los que ya existe? (como los que te han mencionado)
Pregunta 2: Si lo quieres hacer tu mismo ¿por qué no mirar el código fuente?
Código:
function free_images()
{
var block = document.getElementById('fon-block');
var page = document.getElementById('global');
block.style.height = page.clientHeight + 'px';
block.style.display = 'block';
block.onclick = function () {free_images_hide(); return false;} ;
var frmBlock = document.getElementById('about-blocks');
var yScroll;
if (self.pageYOffset) {
yScroll = self.pageYOffset;
} else if (document.documentElement && document.documentElement.scrollTop){
yScroll = document.documentElement.scrollTop;
} else if (document.body) {
yScroll = document.body.scrollTop;
}
var windowHeight;
if (self.innerHeight) {
windowHeight = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) {
windowHeight = document.documentElement.clientHeight;
} else if (document.body) {
windowHeight = document.body.clientHeight;
}
frmBlock.style.display = 'block';
frmBlock.style.display = 'block';
frmBlock.style.top = windowHeight/2 + yScroll - frmBlock.clientHeight/2 + 'px';
return false;
}
function free_images_hide()
{
var block = document.getElementById('fon-block');
var frmBlock = document.getElementById('about-blocks');
block.style.display = 'none';
frmBlock.style.display = 'none';
}
Saludos.