📄 html.js
字号:
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$RCSfile: viewthread.js,v $
$Revision: 1.45 $
$Date: 2007/06/15 21:48:18 $
*/
//var IMGDIR = 'images';var SMDIR = 'images/smilies';var attackevasive = '0';
var lang = new Array();
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
function $(id) {
return document.getElementById(id);
}
Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}
function doane(event) {
e = event ? event : window.event;
if(is_ie) {
e.returnValue = false;
e.cancelBubble = true;
} else if(e) {
e.stopPropagation();
e.preventDefault();
}
}
function fetchOffset(obj) {
var left_offset = obj.offsetLeft;
var top_offset = obj.offsetTop;
while((obj = obj.offsetParent) != null) {
left_offset += obj.offsetLeft;
top_offset += obj.offsetTop;
}
return { 'left' : left_offset, 'top' : top_offset };
}
var zoomobj = Array();var zoomadjust;
function zoom(obj, zimg) {
if(!zimg) {
zimg = obj.src;
}
if(!$('zoomimglayer_bg')) {
div = document.createElement('div');div.id = 'zoomimglayer_bg';
div.style.position = 'absolute';
div.style.left = div.style.top = '0px';
div.style.width = '100%';
div.style.height = document.body.scrollHeight + 'px';
div.style.backgroundColor = '#333';
div.style.display = 'none';
div.style.zIndex = '998';
div.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=60,finishOpacity=100,style=0)';
div.style.opacity = 0.6;
$('append_parent').appendChild(div);
div = document.createElement('div');div.id = 'zoomimglayer';
div.style.position = 'absolute';
div.className = 't_attach';
div.style.padding = 0;
div.onclick = zoomimgclick;
$('append_parent').appendChild(div);
}
zoomobj['srcinfo'] = fetchOffset(obj);
zoomobj['srcobj'] = obj;
zoomobj['zimg'] = zimg;
$('zoomimglayer').style.display = '';
$('zoomimglayer').style.left = zoomobj['srcinfo']['left'] + 'px';
$('zoomimglayer').style.top = zoomobj['srcinfo']['top'] + 'px';
$('zoomimglayer').style.width = zoomobj['srcobj'].width + 'px';
$('zoomimglayer').style.height = zoomobj['srcobj'].height + 'px';
$('zoomimglayer').style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=40,finishOpacity=100,style=0)';
$('zoomimglayer').style.opacity = 0.4;
$('zoomimglayer').style.zIndex = 999;
$('zoomimglayer').innerHTML = '<table width="100%" height="100%" cellspacing="0" cellpadding="0"><tr><td align="center" valign="middle"><img src="' + IMGDIR + '/loading.gif"></td></tr></table><div style="position:absolute;top:-100000px;visibility:hidden"><img onload="zoomimgresize(this)" src="' + zoomobj['zimg'] + '"></div>';
}
function zoomST(c) {
if($('zoomimglayer').style.display == '') {
$('zoomimglayer').style.left = (parseInt($('zoomimglayer').style.left) + zoomobj['x']) + 'px';
$('zoomimglayer').style.top = (parseInt($('zoomimglayer').style.top) + zoomobj['y']) + 'px';
$('zoomimglayer').style.width = (parseInt($('zoomimglayer').style.width) + zoomobj['w']) + 'px';
$('zoomimglayer').style.height = (parseInt($('zoomimglayer').style.height) + zoomobj['h']) + 'px';
var opacity = c * 20;
$('zoomimglayer').style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opacity + ',finishOpacity=100,style=0)';
$('zoomimglayer').style.opacity = opacity / 100;
c++;
if(c <= 5) {
setTimeout('zoomST(' + c + ')', 5);
} else {
zoomadjust = 1;
$('zoomimglayer').style.filter = '';
$('zoomimglayer_bg').style.display = '';
$('zoomimglayer').innerHTML = '<div align="left" style="padding: 5px"><a href="' + zoomobj['zimg'] + '" target="_blank"><img src="' + IMGDIR + '/newwindow.gif" border="0" style="vertical-align: middle" />在新窗口打开</a> <a href="###" onclick="zoomimgadjust(event, 1)"><img src="' + IMGDIR + '/resize.gif" border="0" style="vertical-align: middle" />实际大小</a> <em>Alt+鼠标滚轮缩放图片,点击关闭</em></div><img id="zoomimg" src="' + zoomobj['zimg'] + '" width="' + $('zoomimglayer').style.width + '" height="' + $('zoomimglayer').style.height + '">';
$('zoomimglayer').style.overflow = 'visible';
$('zoomimglayer').style.width = $('zoomimglayer').style.height = 'auto';
if(is_ie){
$('zoomimglayer').onmousewheel = zoomimgadjust;
} else {
$('zoomimglayer').addEventListener("DOMMouseScroll", zoomimgadjust, false);
}
}
}
}
function zoomimgresize(obj) {
var r = obj.width / obj.height;
var w = document.body.clientWidth * 0.8;
w = obj.width > w ? w : obj.width;
var h = w / r;
if(h > document.body.clientHeight * 0.9) {
h = document.body.clientHeight * 0.9;
w = h * r;
}
var l = (document.body.clientWidth - w) / 2;
var t = h < document.body.clientHeight ? (document.body.clientHeight - h) / 2 : 0;
t += + document.body.scrollTop;
zoomobj['x'] = (l - zoomobj['srcinfo']['left']) / 5;
zoomobj['y'] = (t - zoomobj['srcinfo']['top']) / 5;
zoomobj['w'] = (w - zoomobj['srcobj'].width) / 5;
zoomobj['h'] = (h - zoomobj['srcobj'].height) / 5;
$('zoomimglayer').style.filter = '';
$('zoomimglayer').innerHTML = '';
setTimeout('zoomST(1)', 5);
}
function zoomimgadjust(e, a) {
if(!a) {
if(!e) e = window.event;
if(e.altKey) {
if(e.wheelDelta <= 0 || e.detail > 0) {
zoomadjust = 1.1;
} else {
if($('zoomimg').width < $('zoomimglayer').clientWidth) {
doane(e);return;
}
zoomadjust = 0.9;
}
$('zoomimg').style.width = $('zoomimg').style.height = '';
$('zoomimg').width *= zoomadjust;$('zoomimg').height *= zoomadjust;
var l = (document.body.clientWidth - $('zoomimg').clientWidth) / 2;l = l > 0 ? l : 0;
var t = (document.body.clientHeight - $('zoomimg').clientHeight) / 2 + document.body.scrollTop;t = t > 0 ? t : 0;
$('zoomimglayer').style.left = l + 'px';
$('zoomimglayer').style.top = t + 'px';
doane(e);
}
} else {
$('zoomimg').style.width = $('zoomimg').style.height = 'auto';
var l = (document.body.clientWidth - $('zoomimg').clientWidth) / 2;l = l > 0 ? l : 0;
var t = (document.body.clientHeight - $('zoomimg').clientHeight) / 2 + document.body.scrollTop;t = t > 0 ? t : 0;
$('zoomimglayer').style.left = l + 'px';
$('zoomimglayer').style.top = t + 'px';
doane(e);
}
}
function zoomimgclick() {
$('zoomimglayer').innerHTML = '';
$('zoomimglayer').style.display = 'none';
$('zoomimglayer_bg').style.display = 'none';
}
/*按比例生成缩略图*/
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$RCSfile: viewthread.js,v $
$Revision: 1.78 $
$Date: 2007/08/01 05:55:44 $
*/
var msgwidth = 0;
function attachimg(obj, action) {
if(action == 'load') {
if(!msgwidth) {
var re = /postcontent|message/i;
var testobj = obj;
while((testobj = testobj.parentNode) != null) {
var matches = re.exec(testobj.className);
if(matches != null) {
msgwidth = testobj.clientWidth - 20;
break;
}
}
if(!msgwidth) {
msgwidth = 1000;
}
}
if(obj.width > msgwidth) {
obj.resized = true;
obj.width = msgwidth;
obj.style.cursor = 'pointer';
} else {
obj.onclick = null;
}
obj.onload = null;
} else if(action == 'mouseover') {
if(obj.resized) {
obj.style.cursor = 'pointer';
}
}
}
function attachimginfo(obj, infoobj, show, event) {
objinfo = fetchOffset(obj);
if(show) {
$(infoobj).style.left = objinfo['left'] + 'px';
$(infoobj).style.top = obj.offsetHeight < 40 ? (objinfo['top'] + obj.offsetHeight) + 'px' : objinfo['top'] + 'px';
$(infoobj).style.display = '';
} else {
if(is_ie) {
$(infoobj).style.display = 'none';
return;
} else {
var mousex = document.body.scrollLeft + event.clientX;
var mousey = document.documentElement.scrollTop + event.clientY;
if(mousex < objinfo['left'] || mousex > objinfo['left'] + objinfo['width'] || mousey < objinfo['top'] || mousey > objinfo['top'] + objinfo['height']) {
$(infoobj).style.display = 'none';
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -