zoukankan      html  css  js  c++  java
  • 2011811 右下角弹出渐隐的广告代码 可以关闭 可以缩小 还各种兼容(ff opera ie6、7、8都试过了)值得保留哎~~~

    act.gif

                最近在阿里西西 当到一个相当好的右下角弹出代码框  我找了好久了 这一个最符合我的心意了:

      js  代码段:

     

      

    <script language="javascript">
    var Message={
    set:
    function() {//最小化与恢复状态切换
    var set=this.minbtn.status == 1?[0,1,'block',this.char[0],'最小化']:[1,0,'none',this.char[1],'展开'];
    this.minbtn.status=set[0];
    this.win.style.borderBottomWidth=set[1];
    this.content.style.display =set[2];
    this.minbtn.innerHTML =set[3]
    this.minbtn.title = set[4];
    this.win.style.top = this.getY().top;
    },
    close:
    function() {//关闭
    this.win.style.display = 'none';
    window.onscroll
    = null;
    },
    setOpacity:
    function(x) {//设置透明度
    var v = x >= 100 ? '': 'Alpha(opacity=' + x + ')';
    this.win.style.visibility = x<=0?'hidden':'visible';//IE有绝对或相对定位内容不随父透明度变化的bug
    this.win.style.filter = v;
    this.win.style.opacity = x / 100;
    },
    show:
    function() {//渐显
    clearInterval(this.timer2);
    var me = this,fx = this.fx(0, 100, 0.1),t = 0;
    this.timer2 = setInterval(function() {
    t
    = fx();
    me.setOpacity(t[
    0]);
    if (t[1] == 0) {clearInterval(me.timer2) }
    },
    10);
    },
    fx:
    function(a, b, c) {//缓冲计算
    var cMath = Math[(a - b) > 0 ? "floor": "ceil"],c = c || 0.1;
    return function() {return [a += cMath((b - a) * c), a - b]}
    },
    getY:
    function() {//计算移动坐标
    var d = document,b = document.body, e = document.documentElement;
    var s = Math.max(b.scrollTop, e.scrollTop);
    var h = /BackCompat/i.test(document.compatMode)?b.clientHeight:e.clientHeight;
    var h2 = this.win.offsetHeight;
    return {foot: s + h + h2 + 2+'px',top: s + h - h2 - 2+'px'}
    },
    moveTo:
    function(y) {//移动动画
    clearInterval(this.timer);
    var me = this,a = parseInt(this.win.style.top)||0;
    var fx = this.fx(a, parseInt(y));
    var t = 0 ;
    this.timer = setInterval(function() {
    t
    = fx();
    me.win.style.top
    = t[0]+'px';
    if (t[1] == 0) {
    clearInterval(me.timer);
    me.bind();
    }
    },
    10);
    },
    bind:
    function (){//绑定窗口滚动条与大小变化事件
    var me=this,st,rt;
    window.onscroll
    = function() {
    clearTimeout(st);
    clearTimeout(me.timer2);
    me.setOpacity(
    0);
    st
    = setTimeout(function() {
    me.win.style.top
    = me.getY().top;
    me.show();
    },
    600);
    };
    window.onresize
    = function (){
    clearTimeout(rt);
    rt
    = setTimeout(function() {me.win.style.top = me.getY().top},100);
    }
    },
    init:
    function() {//创建HTML
    function $(id) {return document.getElementById(id)};
    this.win=$('msg_win');
    var set={minbtn: 'msg_min',closebtn: 'msg_close',title: 'msg_title',content: 'msg_content'};
    for (var Id in set) {this[Id] = $(set[Id])};
    var me = this;
    this.minbtn.onclick = function() {me.set();this.blur()};
    this.closebtn.onclick = function() {me.close()};
    this.char=navigator.userAgent.toLowerCase().indexOf('firefox')+1?['_','::','×']:['0','2','r'];//FF不支持webdings字体
    this.minbtn.innerHTML=this.char[0];
    this.closebtn.innerHTML=this.char[2];
    setTimeout(
    function() {//初始化最先位置
    me.win.style.display = 'block';
    me.win.style.top
    = me.getY().foot;
    me.moveTo(me.getY().top);
    },
    0);
    return this;
    }
    };
    Message.init();
    function hide(){
    document.getElementById("msg_content").style.display = "none";
    }(图片上的关闭功能)
    </script>

    具体怎么理解嘛~~~有待学习一段时间;不过最后我改过之后是在图片上用热点加出来的关闭功能~~原来的并不是这个样子 可以吧滤镜值删去 看看原版的~~

    css: 

    #msg_win{323px;position:absolute;right:0;font-size:12px;font-family:Arial;margin:0px;display:none;overflow:hidden;z-index:99;}
    #msg_win .icos{position:absolute;top:2px;*top:0px;right:2px;z-index:9;}
    .icos a{float:left;color:#833B02;margin:1px;text-align:center;font-weight:bold;14px;height:22px;line-height:22px;padding:1px;text-decoration:none;font-family:webdings;filter:Alpha(Opacity=0);opacity:0}
    .icos a:hover{color:#fff;}
    #msg_title{background:#FECD00;border-bottom:1px solid #A67901;border-top:1px solid #FFF;border-left:1px solid #FFF;color:#000;height:25px;line-height:25px;text-indent:5px;filter:Alpha(Opacity=0);opacity:0}
    #msg_content{323px;height:210px;overflow:hidden;}
    

    下面是html段:

    <div id="msg_win" style="display:block;top:490px;visibility:visible;opacity:1;">
    <div class="icos"><a id="msg_min" title="最小化" href="javascript:void 0">_</a><a id="msg_close" title="关闭" href="javascript:void 0">×</a></div>
    <div id="msg_title">站长特效网右下角窗口</div>
    <div id="msg_content"><img src="actxt.gif(上方的act.gif)" width="323" height="210" border="0" usemap="#Map" />
      <map name="Map" id="Map">
        <area shape="rect" coords="53,113,271,154" href="mailto:JKSBWB@163.COM;wanbu@dascom.net.cn" />
        <area shape="rect" coords="247,175,300,193" href="http://www.wanbu.com.cn/bencandy.php?fid=127&id=2237" target="_blank" />
        <area shape="rect" coords="295,10,312,25"  style="cursor:pointer;" onclick="hide()" />
      </map>
    </div>
    </div>


  • 相关阅读:
    HDOJ 1846 Brave Game
    并查集模板
    HDU 2102 A计划
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    POJ 1321 棋盘问题
    CF 999 C.Alphabetic Removals
    CF 999 B. Reversing Encryption
    string的基础用法
    51nod 1267 4个数和为0
  • 原文地址:https://www.cnblogs.com/boyice/p/boyice.html
Copyright © 2011-2022 走看看