热点推荐:ASP.Net | ADO.Net | VB.Net | Web服务器 | Access | MSSQL | MySQL | Oracle | .Net控件 | Win 9x | Win 2000 | Win 2003 | DOS | Unix | 注册表 | 应用其它 | 安装调试 | 基本操作 | 使用技巧 | 系统优化 |故障处理 | 个性风格 | 病毒安全 | 专杀工具
您现在的位置: 中华IT技术网 >> 开发语言 >> JavaScript >> 正文
全文
MSN弹出式窗口popup的JS实现
作者:1024k    文章来源:本站原创    点击数:    更新时间:2007-7-29

效果图:

实现这样的效果步骤如下:
1.把下面的代码添加到页首Html代码

<script language="javascript">
var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,i = 0;
var eMsg = new Object();
eMsg.id = 'eMsg';
eMsg.obj = function(){return document.getElementById(eMsg.id);};

eMsg.onLoad = function(){
    try{
        divTop = parseInt(eMsg.obj().style.top,10);
        divLeft = parseInt(eMsg.obj().style.left,10);
        divHeight = parseInt(eMsg.obj().offsetHeight,10);
        divWidth = parseInt(eMsg.obj().offsetWidth,10);
        docWidth = document.body.clientWidth;
        docHeight = document.body.clientHeight;//内容高度
        //alert(document.body.scrollTop);
        //return;
/**//*
        alert("top.window.screen.availHeight "+docHeight);
        alert("top.window.screenTop "+top.window.screenTop);       
        alert("document.body.clientHeight "+document.body.clientHeight);       
        alert("document.body.clientWidth "+docWidth);       
        alert("document.documentElement.scrollTop "+document.documentElement.scrollTop);       
*/
        eMsg.obj().style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;//parseInt(document.body.scrollTop,10)被document.documentElement.scrollTop替换
        eMsg.obj().style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth;
        eMsg.obj().style.visibility="visible";
        eMsg.timer = window.setInterval(eMsg.move,2);
      
        //hp.skin.onBeforChange = function(){
        //    if(eMsg.obj())eMsg.obj().parentNode.removeChild(eMsg.obj());
        //};
    }
    catch(e){}
};
eMsg.onResize = function(){
    i+=1;
    //alert(i);
    if(i>1000) eMsg.close();
    try{
        divHeight = parseInt(eMsg.obj().offsetHeight,10);
        divWidth = parseInt(eMsg.obj().offsetWidth,10);
        docWidth = document.body.clientWidth;
        docHeight = document.body.clientHeight;
        eMsg.obj().style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10);//parseInt(document.body.scrollTop,10)被document.documentElement.scrollTop替换
        eMsg.obj().style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10);
    }
    catch(e){}
};
eMsg.move = function(){
    try
    {
        if(parseInt(eMsg.obj().style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10)))//parseInt(document.body.scrollTop,10)被document.documentElement.scrollTop替换
        {
            window.clearInterval(eMsg.timer);
            eMsg.timer = window.setInterval(eMsg.onResize,1);
        }
        divTop = parseInt(eMsg.obj().style.top,10);
        eMsg.obj().style.top = divTop - 1;
    }
    catch(e){}
};
eMsg.close = function(){
//alert('will close');
    if(eMsg.obj()) eMsg.obj().parentNode.removeChild(eMsg.obj());
    if(eMsg.timer) window.clearInterval(eMsg.timer);
};
eMsg.createInstance = function(bodyHtml){
    //if(!titleHtml || !bodyHtml)throw '必须为titleHtml指定值,必须为bodyHtml指定值。';
  try
  {
    if(eMsg.obj())eMsg.obj().parentNode.removeChild(eMsg.obj()

[1] [2] 下一页

相关文章
最新更新
编辑推荐
热门图片
频道大全
文章阅读排行
周排行
月排行