自己写的一个jQuery对联广告插件
效果图:

文件的位置摆放:

插件的代码:
;(function($){
$.extend({
dLAdv:function(options){
var defaults={
leftType:0,//左边广告图片效果0稳固不动,1缓慢复位
rightType:0,//右边广告图片的效果0稳固不动,1缓慢复位
leftTime:300,//左边复位时间
rightTime:300,//右边复位时间
leftCloseTime:1000,//左边关闭时间
rightCloseTime:1000,//右边关闭时间
leftToTop:200,//左边广告top
leftToLeft:0,//左边广告离浏览器左边距离
rightToTop:200,//右边广告top
rightToRight:0,//右边广告离浏览器有变距离
leftAdvStr:0,//左边的广告,1有,0无
rightAdvStr:0,//右边的广告,1有,0无
leftWidth:140,//左边广告宽度
leftHeight:200,//左边广告高度
rightWidth:140,//右边广告宽度
rightHeight:200,//右边广告高度
leftSrc:"dlAdvPic.jpg",//左边图片路径
leftAlt:"advertising",//左边广告图片的alt值
rightSrc:"dlAdvPic.jpg",//右边图片路径
rightAlt:"advertising",//右边广告图片的alt值
leftZindex:800,//左边层级
rightZindex:800,//右边层级
strClose:"关闭",
//下面2项不做参数给出
leftClass:"dlBoxLeft",//左边class
rightClass:"dlBoxRight"//右边class
}
options= $.extend(defaults,options);
var html="";
if(options.leftAdvStr===1){
html+="<div class="+options.leftClass+">";
html+="<div class='dlAdvLeftImgBox'><img class='dlAdvleftImg' src="+options.leftSrc+" alt="+options.leftAlt+"></div>";
html+="<div class='dlAdvCloseDiv'><a class='dlAdvClose dlAdvLeftClose'>"+options.strClose+"</a></div>";
html+="</div>";
}
if(options.rightAdvStr===1){
html+="<div class="+options.rightClass+">";
html+="<div class='dlAdvRightImgBox'><img class='dlAdvRightImg' src="+options.rightSrc+" alt="+options.rightAlt+"></div>";
html+="<div class='dlAdvCloseDiv'><a class='dlAdvClose dlAdvRightClose'>"+options.strClose+"</a></div>";
html+="</div>";
}
$("body").append(html);
$(".dlAdvLeftClose,.dlAdvRightClose").on("click",function(){
if($(this).is(".dlAdvLeftClose"))
$("."+options.leftClass).fadeOut(options.leftCloseTime,function(){
$(this).remove();
});
else if($(this).is(".dlAdvRightClose"))
$("."+options.rightClass).fadeOut(options.rightCloseTime,function(){
$(this).remove();
});
})
var leftAdv=$("."+options.leftClass),
rightAdv=$("."+options.rightClass),
dlAdvCloseHeight=$(".dlAdvCloseDiv").eq(0).outerHeight();
leftAdv.css({"z-index":options.leftZindex});
rightAdv.css({"z-index":options.rightZindex});
function changeImgSize(imgObj,width,height){
height-=dlAdvCloseHeight;
imgObj.parent().width(width).height(height);
imgObj.css({height:"100%",width:"100%"});
}
function getAdvTop(pos,type){//pos,左,右,type,效果
if(type===0){
if(pos==="left"){
return {top:options.leftToTop+"px"};
}
else if(pos==="right"){
return {top:options.rightToTop+"px"};
}
}
else if(type===1){
var scrollTop=$(window).scrollTop();
var top=0;
if(pos==="left"){
top=options.leftToTop+scrollTop;
return {top:top+"px"};
}
else if(pos==="right"){
top=options.rightToTop+scrollTop;
return {top:top+"px"};
}
}
else{alert("方法getAdvTop的type有误")}
}
var leftAdvSize={width:options.leftWidth+"px",height:options.leftHeight+"px"};
var rightAdvSize={width:options.rightWidth+"px",height:options.rightHeight+"px"};
var leftAdvPos={left:options.leftToLeft+"px"};
var rightAdvPos={right:options.rightToRight+"px"};
changeImgSize($(".dlAdvleftImg"),options.leftWidth,options.leftHeight);
changeImgSize($(".dlAdvRightImg"),options.rightWidth,options.rightHeight);
function scrollMove(num){//num是数值,不同的数值表示的不同的缓慢恢复的对象
$(window).scroll(function(){
var scrollTop=$(window).scrollTop(),top=0;
if(num===-1){//左边
top=scrollTop+options.leftToTop;
setTimeout(function(){
leftAdv.css({top:top+"px"});
},options.leftTime);
}
else if(num===1){//右边
top=options.rightToTop+scrollTop;
// rightAdv.animate({top:top+"px"},1000)
setTimeout(function(){
//rightAdv.animate({top:top+"px"},1000)
rightAdv.css({top:top+"px"});
},options.rightTime)
}
else if(num===2){//两边
var leftTop=scrollTop+options.leftToTop;
var rightTop=scrollTop+options.rightToTop;
setTimeout(function(){
leftAdv.css({top:leftTop+"px"});
},options.leftTime)
setTimeout(function(){
rightAdv.css({top:rightTop+"px"});
},options.rightTime);
}
});
}
var whoMove=0;//0,都不缓慢移动,-1,左边缓慢移动,1表示右边缓慢移动,2表示都移动
if(options.leftType===0){//稳固不动
leftAdv.css({"position":"fixed"}).css(getAdvTop("left",options.leftType)).css(leftAdvSize).css(leftAdvPos);
}
else if(options.leftType===1){//缓慢恢复
leftAdv.css({"position":"absolute"}).css(getAdvTop("left",options.leftType)).css(leftAdvSize).css(leftAdvPos);
whoMove=-1;
}
else {
alert("左对联广告的效果参数传递有误");
}
if(options.rightType===0){
rightAdv.css({"position":"fixed"}).css(getAdvTop("right",options.rightType)).css(rightAdvSize).css(rightAdvPos);
}
else if(options.rightType===1){
rightAdv.css({"position":"absolute"}).css(getAdvTop("right",options.rightType)).css(rightAdvSize).css(rightAdvPos);
whoMove=(whoMove===0?1:2);
}
else {
alert("右对联广告的效果参数传递有误");
}
if(whoMove===0){}//都不缓慢恢复
else if(whoMove===-1){//左边缓慢移动
scrollMove(whoMove);
}
else if(whoMove===1){//右边缓慢移动
scrollMove(whoMove)
}
else if(whoMove===2){//左右都缓慢移动
scrollMove(whoMove)
}
}
});
})(jQuery);
css代码:
.dlBoxLeft{ border:1px solid #ccc;padding:3px;background-color:#efefef; }
.dlBoxRight{border:1px solid #ccc;padding:3px; background-color:#efefef;}
.dlAdvLeftImgBox{ }
.dlAdvCloseDiv{background-image:url(dlCloseBj.jpg);background-repeat:repeat-x;height:25px;border-top:1px solid #ccc; margin-top:3px;}
.dlAdvClose{ /*width:auto; display:block;*/ font-size:12px; font-family:"宋体"; cursor:pointer;background-image:url(dlClosebutton.jpg); background-repeat:no-repeat; display:block;width:52px; height:19px; margin:0 auto; margin-top:3px;color:#7f7c7c; padding-left:8px; font-weight:bold; padding-top:1px; text-align:center; line-height:19px;}
插件的调用
$(function(){
$.dLAdv({leftAdvStr:1,leftType:0,rightAdvStr:1,rightType:1});
})
给页面一个div,让它撑出滚动条.
<div style="height:10000px;"> </div>
自己写的一个jQuery对联广告插件的更多相关文章
- 自己写的一个jQuery轮播插件
大概是四月初开始写的,中间停了有一个月吧.这是我在Github的第一个项目.项目地址:https://github.com/linzb93/jquery.slide.js. 轮播应该是最好写的插件了, ...
- 自己在项目中写的一个Jquery插件和Jquery tab 功能
后台查询结果 PDFSearchResult实体类: [DataContract(Name = "PDFSearchResult")] public class PDFSearch ...
- 写了一个迷你toast提示插件,支持自定义提示文字和显示时间
写了一个迷你toast提示插件,支持自定义提示文字和显示时间,不想用其他第三方的ui插件,又想要toast等小效果来完善交互的同学可以试试, 代码中还贡献了一段css能力检测js工具函数,做项目的时候 ...
- [原]发布一个jQuery提示框插件,Github开源附主站,jquery.tooltips.js
一个简单精致的jQuery带箭头提示框插件 插件写好快一年了,和一个 弹出框插件(点击查看) 一起写的,一直没有整理出来,昨天得功夫整理并放到了github上,源码和网站均可在线看或下载. CSS中的 ...
- 小教程:自己创建一个jQuery长阴影插件
长阴影设计是平面设计的一个变体,添加了阴影,产生了深度的幻觉,并导致了三维的设计.在本教程中,我们将创建一个jQuery插件,通过添加完全可自定义的长阴影图标,我们可以轻松地转换平面图标. 戳我查看效 ...
- JQuery对联广告
html--------------------------------------------------------------------------------------<!DOCTY ...
- 亲手用模块化方式写一个jquery QQ表情插件。
在回复或是评论的时候,很多时间都需要有回复表情的功能,然后而需要插入QQ表情可以是最常见的. 插件也写多很多个了,这次写插件就下了一个决定.就是使用模块化来开发. 最后在我的源代码中有这样子一段: v ...
- 自己写了一个无缝滚动的插件(jQuery)
效果图: html代码: 1 <h1>无缝滚动,向右滚动</h1> 2 <ul id="guoul1"> 3 <li><img ...
- 写了一个jquery的 弹出层插件。
下载地址:http://pan.baidu.com/s/1eQ26CMm ps:ajax加载做的,要有环境才能正常运行哦! //这是一个以ajax加载显示弹出层插件 参数(option): widt ...
随机推荐
- utf-8和Unicode的区别
链接 utf-8和Unicode到底有什么区别?是存储方式不同?编码方式不同?它们看起来似乎很相似,但是实际上他们并不是同一个层次的概念 要想先讲清楚他们的区别,首先应该讲讲Unicode的来由. 众 ...
- struts2 MVC模式
在学习struts2之前首先了解一下MVC模式. MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务.分 ...
- MyEclipse多次重装、删除注册表、重装系统激活都不成功,终极解决方法 - imsoft.cnblogs
问题:注册成功的MyEclipse被修改了一个配置文件之后,激活失败,然后在网上找激活码,激活不成功,但激活文件一直保存在电脑中,每次打开MyEclipse的激活界面总看得到之前的激活码.后面尝试 ...
- 1010. Radix (25) pat
Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...
- 初学者必读之AJAX简单实例2
1.a前台页面的主体 b.添加script函数: 这个函数功能1:把文本框的数据传入到后台程序 2.再接收后台程序处理之后的数据,将其插入到页面 2.后台程序功能 软件测试
- ClickHouse 简单试用
ClickHouse 具有强劲的数据分析能力,同时支持标准sql 查询,内置了好多聚合参数 同时可以方便的使用表函数连接不同的数据源(url,jdbc,文件目录...) 测试使用docker安装 参考 ...
- vulcanjs 开源工具方便快速开发react graphql meteor 应用
vulcan 开源工具方便快速开发react graphql meteor 应用 操作环境mac os 安装 meteor 安装(此安装有点慢,可以通过正确上网解决) curl https://ins ...
- sql 语句执行顺序
一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. 3)视图转换,将涉及视图 ...
- 第一章 spring起步
点击 网址 http://start.spring.io/ 就可以获得spring-boot的项目结构. 如下: 将项目解压到自己的项目中,然后找到mian函数所在启动类.运行.出现: 表示已经运行了 ...
- 浅谈c++中map插入数据的用法
map:数据的插入 在构造map容器后,我们就可以往里面插入数据了.这里讲三种插入数据的方法:第一种:用insert函数插入pair数据 map<int, string> mapStude ...