您的位置:首页 > Web前端 > JavaScript

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

2013-03-28 16:52 781 查看
效果





代码

/*
* 定时全屏广告
* 页面使用首先加载 <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/khttp://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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐