浮动居中js广告插件,支持详细的自定义:最大化播放时长,二次最大化间隔,不显示的url等

来源:互联网 发布:姓和氏的区别 知乎 编辑:程序博客网 时间:2024/06/05 18:28

效果

浮动居中js广告插件,支持详细的自定义:最大化播放时长,二次最大化间隔,不显示的url等 - qidizi - qidizi 的博客

浮动居中js广告插件,支持详细的自定义:最大化播放时长,二次最大化间隔,不显示的url等 - qidizi - qidizi 的博客


代码



/*
 * 定时全屏广告
 * 页面使用首先加载 <script src="http://icon.chinahrd.net/js/jquery.min.js"></script>;如果已经使用了,无需重复加载
 * 再加载 <script src="http://icon.chinahrd.net/js/common.js"></script>:只使用到cookie方法
 * 然后在页面插入以下代码,使用了防止缓存方案:<script>document.write('<script src="http://icon.chinahrd.net/js/timeAds.js?r=' + new Date().getTime() + '"></script' + '>');</script>
 * 如果加载前页面设置了变量 window.timeADsHide = 1;,本页面即不加载此广告
 * 如果页面中$已经被其它插件使用,请在加载所有项目的后方添加释放$占用的语句:<script>jQuery.noConflict();</script>
 */
 
(function($) {
    /* 参数配置区 */
    var adUrl = 'http://mall.chinahrd.net/html/chinahrd_cgb/PubClassAdvance.aspx'; //广告点击链接地址
    var adSmallPic = 'http://icon.chinahrd.net/ads/kebiao.jpg'; //小广告图片
    var cookieTime = 3;//广告期数,注意更换广告时,请累加
    var minBtImg = 'http://icon.chinahrd.net/ads/closeBg.jpg';//大广告的最小化按钮图片
    var cookieLife = 48;//多少小时内只显示一次
    var adTop = 120;//大广告与小广告离页面顶边px值
    var adBigWidth = 978;//大广告宽,高会自适应
    var adSmallWidth = 22;//小广告宽,高会自适应
    var showLife = 7;//大广告持续显示时间,秒
    var noAds = 0;//禁显本广告,1:是,0:否
    var notAdsHP = [
        /*
         * 不显示广告的url匹配条目;
         * 支持 string 与 正则对象,除了这二者不允许放其它对象,否则会导致出错
         * 设置string时,不区分大小写,使用从左边开始匹配规则,本条目完全页面URL中左边子串就符合,如 http://www.q.com 认为 与 http://www.q.com/dd/k 和 http://www.q.com/index.php 匹配,
         *      但不与http://q.com/匹配
         *
         * 设置regexp或是//时,使用正则匹配方式
         * 可以使用 //和new RegExp来设置
         */
        'http://cms.chinahrd.net/user/'
        ,'http://cms.chinahrd.net'
        ,'http://www.chinahrd.net'
        ,'http://chinahrd.net'
        ];
    var hasAd = [
        /*
         * 显示广告的url匹配条目,注意优先权高于 notAdsHP 中设置,也就 如果这里匹配了,notAdsHP中也匹配时将使用这个条目中的处理规则,而不应用notAdsHP处理规则
         * 使用方式与notAdsHP一样
         */
        'http://www.chinahrd.net/index.html'
    ];
    var bigAdHtml = /*'<img src="http://icon.chinahrd.net/ads/cgb2013.gif" width="100%"/>'*/
                   
                   '<embed width="978" height="300"  swliveconnect="false" quality="high" allowscriptaccess="always"  src="http://icon.chinahrd.net/ads/kebiao_download.swf" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" allowfullscreen="true" allownetworking="all">'
                   
                   ;
                   //编写大广告代码
                   
    /* 参数配置区 */
    
    
    if (window.timeAdsJs) return;//防止重复加载
    window.timeAdsJs = true;
    if (noAds ||  window.timeADsHide) return ;
    
    $(function () {
        var exit = function () {            
            var href = location.href.toLowerCase();
            
            for (var i = 0; i < hasAd.length; i++) {//优先检查绝对允许
                var check = hasAd[i];
                
                switch (typeof check) {
                    case 'string':
                        check = check.toLowerCase();                        
                        if (href.indexOf(check) == 0) return 0;                                  
                        break;
                    case 'object':
                        if (check.test(href)) return 0;
                        break;
                }                
            }
            
            for (var i = 0; i < notAdsHP.length; i++) {//检查不允许
                var check = notAdsHP[i];
                
                switch (typeof check) {
                    case 'string':
                        check = check.toLowerCase();                        
                        if (href.indexOf(check) == 0) return 1;                                  
                        break;
                    case 'object':
                        if (check.test(href)) return 1;
                        break;
                }                
            }
            
            return 0;
        }
        
        if (exit()) return;
        var cookieName = 'timeADs' + cookieTime;
        var isIe6 = $.browser.msie && ($.browser.version == "6.0") && !$.support.style;
        var bigCss = isIe6 ? 'position:absolute;' : 'position:fixed; left:50%; margin-left:-' + (adBigWidth/2) + 'px;';//大广告样式
        var smallCss = isIe6 ? 'position:absolute;' : 'right:0;position:fixed;';//小广告样式
        //初始时最小化
        var adHtml = '<div id="adBigDiv" style="overflow:hidden;width:' + adBigWidth + 'px;top:' + adTop + 'px;display:none;z-index:2147483647;' + bigCss + '" title="大广告外框">'
                    + (adUrl == '' ? '' : '<a href="' + adUrl + '" style="width:100%;display:block;">')
                    + bigAdHtml
                   + (adUrl == '' ? '' : '</a>')
                    + '<img style="float:right;" id="adSmall" src="' +minBtImg+ '" width="77" height="31" title="最小化广告" />'
                    + '</div>'
                    
                    + '<div id="adSmallDiv" style="top:' + adTop + 'px;width:' + adSmallWidth + 'px;overflow:hidden;z-index:10002;' + smallCss + '" title="小广告外框">'
                    + (adUrl == '' ? '' : '<a href="' + adUrl + '" target="_blank">')
                    + '<img src="' + adSmallPic + '" width="22" height="217" title="点击进入此宣传页面"/>'
                    + (adUrl == '' ? '' : '</a>')
                    + '<img id="adPlay" src="http://icon.chinahrd.net/ads/play.jpg" width="23" height="30" title="再次观看"/>'
                    + '<img id="adClose" src="http://icon.chinahrd.net/ads/close.jpg" width="18" height="48" title="关闭浮动条"/>'
                    + '</div>';
        var adTime = _.getCookie(cookieName);
        adTime = isNaN(adTime) ? 0 : adTime * 1;
        var recAdTime = function () {
            _.setCookie(cookieName, new Date().getTime(), {hours:cookieLife});
        }
        $('body').append(adHtml); 
        var showLifer = null;
        if (isIe6) {
            var setPosition = function () {
                var top = adTop + $(window).scrollTop();
                var left = $(window).scrollLeft();
                var width = $(window).width();
                $('#adBigDiv,#adSmallDiv').css('top', top + 'px');
                $('#adBigDiv').css('left', left + width/2 - adBigWidth/2 + 'px');
                $('#adSmallDiv').css('left', left + width - adSmallWidth + 'px');
            }
            $(window).scroll(setPosition).resize(setPosition);
        }
           
        $('#adClose').click(function() {//关闭浮动条
            clearTimeout(showLifer);
            $('#adSmallDiv').hide();
        });
        $('#adPlay').click(function() {//最小化条中播放
            $('#adBigDiv').show();
            $('#adSmallDiv').hide();
            clearTimeout(showLifer);
            showLifer = setTimeout(function() {
                $('#adSmall').click();
            }, showLife * 1000);
        });
        $('#adSmall').click(function() {//最小化按钮
            clearTimeout(showLifer);
            $('#adBigDiv').hide();
            $('#adSmallDiv').show();
        });
        
        if (adTime < 1) {//时间内次次
            $('#adPlay').click();
            recAdTime();//记录下次时间
        }
    });
})(jQuery);