75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
var isIE = navigator.appVersion.indexOf("MSIE") != -1;
|
|
|
|
var preview, preview_img;
|
|
|
|
function show_preview(url) {
|
|
preview.style.display = "block";
|
|
preview_img.style.backgroundImage = "url("+this.href+")";
|
|
return false;
|
|
}
|
|
|
|
function hide_preview() {
|
|
preview.style.display = "none";
|
|
}
|
|
|
|
function fix_preview() {
|
|
var e = document.documentElement ? document.documentElement : document.body;
|
|
preview.style.top = e.scrollTop + "px";
|
|
preview.style.height = e.clientHeight;
|
|
preview.style.width = e.clientWidth;
|
|
}
|
|
|
|
function nice_preview() {
|
|
// attach
|
|
var links = document.getElementsByTagName("A");
|
|
for (var i in links) {
|
|
if (/(.jpg|.png|.gif)$/.test(links[i])) {
|
|
links[i].onclick = show_preview;
|
|
}
|
|
}
|
|
// create divs
|
|
preview = document.createElement("div");
|
|
var bg = document.createElement("div");
|
|
var img = document.createElement("div");
|
|
preview.id = "preview";
|
|
bg.id = "preview-bg";
|
|
img.id = "preview-img";
|
|
hide_preview();
|
|
preview.onclick = bg.onclick = img.onclick = hide_preview;
|
|
preview.appendChild(bg);
|
|
preview.appendChild(img);
|
|
document.body.appendChild(preview);
|
|
preview_img = img;
|
|
if (isIE) {
|
|
window.onscroll = fix_preview;
|
|
fix_preview();
|
|
}
|
|
}
|
|
|
|
var dir;
|
|
function fix_img() {
|
|
if (this.currentStyle.width == 'auto' && this.currentStyle.height == 'auto') {
|
|
this.style.width = this.offsetWidth + 'px';
|
|
this.style.height = this.offsetHeight + 'px';
|
|
}
|
|
this.onload = null;
|
|
this.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+this.src+'",sizingMethod="scale")';
|
|
this.src = dir + "blank.gif";
|
|
}
|
|
function fix_png_alpha() {
|
|
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent)) return; // only in ie 5.5 and 6
|
|
dir = document.getElementsByTagName("SCRIPT")[0].src.replace(/[^\/]*$/,''); // dir for blank image
|
|
var imgs = document.getElementsByTagName("IMG");
|
|
for (var i in imgs) {
|
|
var img = imgs[i];
|
|
if ((/\.png$/i).test(img.src)) {
|
|
img.onload = fix_img;
|
|
}
|
|
}
|
|
}
|
|
|
|
function init() {
|
|
fix_png_alpha();
|
|
nice_preview();
|
|
}
|