js消息框

function PopBubble(caption, content, see,action) {

  
    this.content = content;
    this.caption = caption;
    this.see = see;
    this.action=action;
    this.width = 250;
    this.height = 165;
    this.timeout = 500;
    this.speed = 15;
    this.step = 2;
    this.right = screen.width - 18;
    this.bottom = screen.height;
    this.left = this.right - this.width;
    this.top = this.bottom - this.height;
    this.timer = 0;
    this.pause = false;
    this.close = false;
    this.autoHide = false;
}

/* 
退宿弹出窗口的方法 
*/
PopBubble.prototype.hide = function () {

 

    var offset = this.height > this.bottom - this.top ? this.height : this.bottom - this.top;
    var obj = this;

    if (this.timer > 0) {
        window.clearInterval(obj.timer);
    }

    var fun = function () {
        if (obj.pause == false || obj.close) {
            var x = obj.left;
            var y = 0;
            var width = obj.width;
            var height = 0;

            if (obj.offset > 0) {
                height = obj.offset;
            }
            y = obj.bottom - height;
            if (y >= obj.bottom) {
                window.clearInterval(obj.timer);
                obj.Pop.hide();
            } else {
                obj.offset = obj.offset - obj.step;
            }
            obj.Pop.show(x, y, width, height);
        }
    }

    this.timer = window.setInterval(fun, this.speed)

 

 


}

/*
实现查看超链接 
  
*/
PopBubble.prototype.oncommand = function () {
    var iTop = (window.screen.availHeight - 30 - 500) / 2; //获得窗口的垂直位置;
    var iLeft = (window.screen.availWidth - 10 - 900) / 2; //获得窗口的水平位置;
    window.open(this.action, '', 'height=500, width=900, toolbar=no, menubar=no, scrollbars=yes, resizable=1,location=0,left=' + iLeft + ',top=' + iTop + ', status=0');
    this.close = true;
    this.hide();
}

/* 
显示窗口中的div并弹出窗口方法
*/
PopBubble.prototype.show = function () {
    var oPopup = window.createPopup();
    this.Pop = oPopup;
    var w = this.width;
    var h = this.height;

    var str = "<DIV style='BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX: 99999; LEFT: 0px; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: " + w + "px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: " + h + "px; BACKGROUND-COLOR: #70ABFF'>"
    str += "<TABLE style='BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid' cellSpacing=0 cellPadding=0 width='100%' bgColor=#A8CCFF border=0>"
    str += "<TR>"
    str += "<TD style='PADDING-LEFT: 4px; FONT-WEIGHT: blod; FONT-SIZE: 12px; COLOR: #000; PADDING-TOP: 4px;' vAlign=center width='90%'>" + this.caption + "</TD>"
    str += "<TD style='FONT-SIZE: 12px;COLOR:#000;cursor:pointer' height=24 id='closeCommand' hidefocus=true>关闭</TD>"
    str += "</TR>"
    str += "<TR>"
    str += "<TD style='PADDING-RIGHT: 1px;PADDING-BOTTOM: 1px' colSpan=2 height=" + (h - 28) + ">"
    str += "<DIV style='BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: #7AA14E 1px solid; PADDING-LEFT: 8px; FONT-SIZE: 12px; PADDING-BOTTOM: 8px; BORDER-LEFT: #7AA14E 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 8px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%'>" + this.content + "<BR><BR>"
    str += "<DIV style='WORD-BREAK: break-all' align=left><A href='javascript:void(0)' hidefocus=true id='btCommand'><FONT color=#ff0000>" + this.see + "<embed id='soundControl' src='Windows.wav' mastersound hidden='true' loop='false' autostart='true'></embed>" + "</FONT></A></DIV>"
    str += "</DIV>"
    str += "</TD>"
    str += "</TR>"
    str += "</TABLE>"
    str += "</DIV>"
    oPopup.document.body.innerHTML = str;


    this.offset = 0;
    var obj = this;
    oPopup.document.body.onmouseover = function () { obj.pause = true; }
    oPopup.document.body.onmouseout = function () { obj.pause = false; }

    var fun = function () {
        var x = obj.left;
        var y = 0;
        var width = obj.width;
        var height = obj.height;

        if (obj.offset > obj.height) {
            height = obj.height;
        } else {
            height = obj.offset;
        }
        y = obj.bottom - obj.offset;
        if (y <= obj.top) {
            obj.timeout--;
            if (obj.timeout == 0) {
                window.clearInterval(obj.timer);
                if (obj.autoHide) {
                    obj.hide();
                }
            }
        }
        else {
            obj.offset = obj.offset + obj.step;
        }
        obj.Pop.show(x, y, width, height);

    }
    this.timer = window.setInterval(fun, this.speed)
    var btCommand = oPopup.document.getElementById("btCommand");
    btCommand.onclick = function () {
        obj.oncommand();
    }
    var closeCommand = oPopup.document.getElementById("closeCommand");
    closeCommand.onclick = function () {
        obj.close = true;
        obj.hide();
    }
}

PopBubble.prototype.rect = function (left, right, top, bottom) {
    try {
        this.left = this.right - this.width;
        this.right = this.left + this.width;
        this.bottom = screen.height;
        this.top = this.bottom - this.height;
    } catch (e) { }
}

posted @ 2012-12-28 10:27  Taffy++  阅读(270)  评论(3编辑  收藏  举报