效果图:

文件的位置摆放:

插件的代码:

 ;(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对联广告插件的更多相关文章

  1. 自己写的一个jQuery轮播插件

    大概是四月初开始写的,中间停了有一个月吧.这是我在Github的第一个项目.项目地址:https://github.com/linzb93/jquery.slide.js. 轮播应该是最好写的插件了, ...

  2. 自己在项目中写的一个Jquery插件和Jquery tab 功能

    后台查询结果 PDFSearchResult实体类: [DataContract(Name = "PDFSearchResult")] public class PDFSearch ...

  3. 写了一个迷你toast提示插件,支持自定义提示文字和显示时间

    写了一个迷你toast提示插件,支持自定义提示文字和显示时间,不想用其他第三方的ui插件,又想要toast等小效果来完善交互的同学可以试试, 代码中还贡献了一段css能力检测js工具函数,做项目的时候 ...

  4. [原]发布一个jQuery提示框插件,Github开源附主站,jquery.tooltips.js

    一个简单精致的jQuery带箭头提示框插件 插件写好快一年了,和一个 弹出框插件(点击查看) 一起写的,一直没有整理出来,昨天得功夫整理并放到了github上,源码和网站均可在线看或下载. CSS中的 ...

  5. 小教程:自己创建一个jQuery长阴影插件

    长阴影设计是平面设计的一个变体,添加了阴影,产生了深度的幻觉,并导致了三维的设计.在本教程中,我们将创建一个jQuery插件,通过添加完全可自定义的长阴影图标,我们可以轻松地转换平面图标. 戳我查看效 ...

  6. JQuery对联广告

    html--------------------------------------------------------------------------------------<!DOCTY ...

  7. 亲手用模块化方式写一个jquery QQ表情插件。

    在回复或是评论的时候,很多时间都需要有回复表情的功能,然后而需要插入QQ表情可以是最常见的. 插件也写多很多个了,这次写插件就下了一个决定.就是使用模块化来开发. 最后在我的源代码中有这样子一段: v ...

  8. 自己写了一个无缝滚动的插件(jQuery)

    效果图: html代码: 1 <h1>无缝滚动,向右滚动</h1> 2 <ul id="guoul1"> 3 <li><img ...

  9. 写了一个jquery的 弹出层插件。

    下载地址:http://pan.baidu.com/s/1eQ26CMm ps:ajax加载做的,要有环境才能正常运行哦! //这是一个以ajax加载显示弹出层插件  参数(option): widt ...

随机推荐

  1. utf-8和Unicode的区别

    链接 utf-8和Unicode到底有什么区别?是存储方式不同?编码方式不同?它们看起来似乎很相似,但是实际上他们并不是同一个层次的概念 要想先讲清楚他们的区别,首先应该讲讲Unicode的来由. 众 ...

  2. struts2 MVC模式

    在学习struts2之前首先了解一下MVC模式. MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务.分 ...

  3. MyEclipse多次重装、删除注册表、重装系统激活都不成功,终极解决方法 - imsoft.cnblogs

      问题:注册成功的MyEclipse被修改了一个配置文件之后,激活失败,然后在网上找激活码,激活不成功,但激活文件一直保存在电脑中,每次打开MyEclipse的激活界面总看得到之前的激活码.后面尝试 ...

  4. 1010. Radix (25) pat

    Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...

  5. 初学者必读之AJAX简单实例2

    1.a前台页面的主体 b.添加script函数: 这个函数功能1:把文本框的数据传入到后台程序   2.再接收后台程序处理之后的数据,将其插入到页面 2.后台程序功能 软件测试

  6. ClickHouse 简单试用

    ClickHouse 具有强劲的数据分析能力,同时支持标准sql 查询,内置了好多聚合参数 同时可以方便的使用表函数连接不同的数据源(url,jdbc,文件目录...) 测试使用docker安装 参考 ...

  7. vulcanjs 开源工具方便快速开发react graphql meteor 应用

    vulcan 开源工具方便快速开发react graphql meteor 应用 操作环境mac os 安装 meteor 安装(此安装有点慢,可以通过正确上网解决) curl https://ins ...

  8. sql 语句执行顺序

    一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. 3)视图转换,将涉及视图 ...

  9. 第一章 spring起步

    点击 网址 http://start.spring.io/ 就可以获得spring-boot的项目结构. 如下: 将项目解压到自己的项目中,然后找到mian函数所在启动类.运行.出现: 表示已经运行了 ...

  10. 浅谈c++中map插入数据的用法

    map:数据的插入 在构造map容器后,我们就可以往里面插入数据了.这里讲三种插入数据的方法:第一种:用insert函数插入pair数据 map<int, string> mapStude ...