效果图:

文件的位置摆放:

插件的代码:

  1. ;(function($){
  2. $.extend({
  3. dLAdv:function(options){
  4. var defaults={
  5. leftType:0,//左边广告图片效果0稳固不动,1缓慢复位
  6. rightType:0,//右边广告图片的效果0稳固不动,1缓慢复位
  7. leftTime:300,//左边复位时间
  8. rightTime:300,//右边复位时间
  9. leftCloseTime:1000,//左边关闭时间
  10. rightCloseTime:1000,//右边关闭时间
  11. leftToTop:200,//左边广告top
  12. leftToLeft:0,//左边广告离浏览器左边距离
  13. rightToTop:200,//右边广告top
  14. rightToRight:0,//右边广告离浏览器有变距离
  15. leftAdvStr:0,//左边的广告,1有,0无
  16. rightAdvStr:0,//右边的广告,1有,0无
  17. leftWidth:140,//左边广告宽度
  18. leftHeight:200,//左边广告高度
  19. rightWidth:140,//右边广告宽度
  20. rightHeight:200,//右边广告高度
  21. leftSrc:"dlAdvPic.jpg",//左边图片路径
  22. leftAlt:"advertising",//左边广告图片的alt值
  23. rightSrc:"dlAdvPic.jpg",//右边图片路径
  24. rightAlt:"advertising",//右边广告图片的alt值
  25. leftZindex:800,//左边层级
  26. rightZindex:800,//右边层级
  27. strClose:"关闭",
  28. //下面2项不做参数给出
  29. leftClass:"dlBoxLeft",//左边class
  30. rightClass:"dlBoxRight"//右边class
  31. }
  32. options= $.extend(defaults,options);
  33. var html="";
  34. if(options.leftAdvStr===1){
  35. html+="<div class="+options.leftClass+">";
  36. html+="<div class='dlAdvLeftImgBox'><img class='dlAdvleftImg' src="+options.leftSrc+" alt="+options.leftAlt+"></div>";
  37. html+="<div class='dlAdvCloseDiv'><a class='dlAdvClose dlAdvLeftClose'>"+options.strClose+"</a></div>";
  38. html+="</div>";
  39. }
  40. if(options.rightAdvStr===1){
  41. html+="<div class="+options.rightClass+">";
  42. html+="<div class='dlAdvRightImgBox'><img class='dlAdvRightImg' src="+options.rightSrc+" alt="+options.rightAlt+"></div>";
  43. html+="<div class='dlAdvCloseDiv'><a class='dlAdvClose dlAdvRightClose'>"+options.strClose+"</a></div>";
  44. html+="</div>";
  45. }
  46. $("body").append(html);
  47. $(".dlAdvLeftClose,.dlAdvRightClose").on("click",function(){
  48. if($(this).is(".dlAdvLeftClose"))
  49. $("."+options.leftClass).fadeOut(options.leftCloseTime,function(){
  50. $(this).remove();
  51. });
  52. else if($(this).is(".dlAdvRightClose"))
  53. $("."+options.rightClass).fadeOut(options.rightCloseTime,function(){
  54. $(this).remove();
  55. });
  56. })
  57.  
  58. var leftAdv=$("."+options.leftClass),
  59. rightAdv=$("."+options.rightClass),
  60. dlAdvCloseHeight=$(".dlAdvCloseDiv").eq(0).outerHeight();
  61. leftAdv.css({"z-index":options.leftZindex});
  62. rightAdv.css({"z-index":options.rightZindex});
  63. function changeImgSize(imgObj,width,height){
  64. height-=dlAdvCloseHeight;
  65. imgObj.parent().width(width).height(height);
  66. imgObj.css({height:"100%",width:"100%"});
  67. }
  68. function getAdvTop(pos,type){//pos,左,右,type,效果
  69. if(type===0){
  70. if(pos==="left"){
  71. return {top:options.leftToTop+"px"};
  72. }
  73. else if(pos==="right"){
  74. return {top:options.rightToTop+"px"};
  75. }
  76. }
  77. else if(type===1){
  78. var scrollTop=$(window).scrollTop();
  79. var top=0;
  80. if(pos==="left"){
  81. top=options.leftToTop+scrollTop;
  82. return {top:top+"px"};
  83. }
  84. else if(pos==="right"){
  85. top=options.rightToTop+scrollTop;
  86. return {top:top+"px"};
  87. }
  88.  
  89. }
  90. else{alert("方法getAdvTop的type有误")}
  91. }
  92. var leftAdvSize={width:options.leftWidth+"px",height:options.leftHeight+"px"};
  93. var rightAdvSize={width:options.rightWidth+"px",height:options.rightHeight+"px"};
  94. var leftAdvPos={left:options.leftToLeft+"px"};
  95. var rightAdvPos={right:options.rightToRight+"px"};
  96. changeImgSize($(".dlAdvleftImg"),options.leftWidth,options.leftHeight);
  97. changeImgSize($(".dlAdvRightImg"),options.rightWidth,options.rightHeight);
  98. function scrollMove(num){//num是数值,不同的数值表示的不同的缓慢恢复的对象
  99. $(window).scroll(function(){
  100. var scrollTop=$(window).scrollTop(),top=0;
  101. if(num===-1){//左边
  102. top=scrollTop+options.leftToTop;
  103. setTimeout(function(){
  104. leftAdv.css({top:top+"px"});
  105. },options.leftTime);
  106. }
  107. else if(num===1){//右边
  108. top=options.rightToTop+scrollTop;
  109. // rightAdv.animate({top:top+"px"},1000)
  110. setTimeout(function(){
  111. //rightAdv.animate({top:top+"px"},1000)
  112. rightAdv.css({top:top+"px"});
  113. },options.rightTime)
  114.  
  115. }
  116. else if(num===2){//两边
  117. var leftTop=scrollTop+options.leftToTop;
  118. var rightTop=scrollTop+options.rightToTop;
  119. setTimeout(function(){
  120. leftAdv.css({top:leftTop+"px"});
  121. },options.leftTime)
  122. setTimeout(function(){
  123. rightAdv.css({top:rightTop+"px"});
  124. },options.rightTime);
  125. }
  126. });
  127. }
  128. var whoMove=0;//0,都不缓慢移动,-1,左边缓慢移动,1表示右边缓慢移动,2表示都移动
  129. if(options.leftType===0){//稳固不动
  130. leftAdv.css({"position":"fixed"}).css(getAdvTop("left",options.leftType)).css(leftAdvSize).css(leftAdvPos);
  131. }
  132. else if(options.leftType===1){//缓慢恢复
  133. leftAdv.css({"position":"absolute"}).css(getAdvTop("left",options.leftType)).css(leftAdvSize).css(leftAdvPos);
  134. whoMove=-1;
  135. }
  136. else {
  137. alert("左对联广告的效果参数传递有误");
  138. }
  139. if(options.rightType===0){
  140. rightAdv.css({"position":"fixed"}).css(getAdvTop("right",options.rightType)).css(rightAdvSize).css(rightAdvPos);
  141. }
  142. else if(options.rightType===1){
  143. rightAdv.css({"position":"absolute"}).css(getAdvTop("right",options.rightType)).css(rightAdvSize).css(rightAdvPos);
  144. whoMove=(whoMove===0?1:2);
  145. }
  146. else {
  147. alert("右对联广告的效果参数传递有误");
  148. }
  149. if(whoMove===0){}//都不缓慢恢复
  150. else if(whoMove===-1){//左边缓慢移动
  151. scrollMove(whoMove);
  152. }
  153. else if(whoMove===1){//右边缓慢移动
  154. scrollMove(whoMove)
  155. }
  156. else if(whoMove===2){//左右都缓慢移动
  157. scrollMove(whoMove)
  158. }
  159. }
  160. });
  161. })(jQuery);

css代码:

  1. .dlBoxLeft{ border:1px solid #ccc;padding:3px;background-color:#efefef; }
  2. .dlBoxRight{border:1px solid #ccc;padding:3px; background-color:#efefef;}
  3. .dlAdvLeftImgBox{ }
  4. .dlAdvCloseDiv{background-image:url(dlCloseBj.jpg);background-repeat:repeat-x;height:25px;border-top:1px solid #ccc; margin-top:3px;}
  5. .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;}

插件的调用

  1. $(function(){
  2. $.dLAdv({leftAdvStr:1,leftType:0,rightAdvStr:1,rightType:1});
  3. })

给页面一个div,让它撑出滚动条.

  1. <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. SSH项目搭建(四)——Maven的pom.xml配置

    史上最全的maven的pom.xml文件详解: https://www.cnblogs.com/qq765065332/p/9238135.html 下面的节点有不理解是啥意思的可以到上面链接的文章里 ...

  2. 第三课 操作系统开发之x86模拟环境搭建

    前面我们讲解了主引导程序的加载过程,并且制作了虚拟软盘a.img,最终这个主引导程序也在机器中成功运行了,但是实际开发的时候,并不会如此简单,免不了调试过程,如果还像上一节中直接将软盘放到机器中去加载 ...

  3. I.MX6 Android Linux UART send receive with multi-thread and multi-mode demo

    /******************************************************************************************* * I.MX6 ...

  4. C templet and switch case with serial number

    /************************************************************************** * C templet and switch c ...

  5. java语法基础练习

    1.阅读示例: EnumTest.java,并运行.分析结果 代码: public class EnumTest { public static void main(String[] args) { ...

  6. Struts2重新学习2之struts2和struts1的区别

    1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类:Struts 1的一个具体问题是使用抽象类编程而不是接口.Struts 2 Action类可以实现一个Acti ...

  7. LG3377 【模板】左偏树(可并堆)

    好博客 1 2 上面那个用数组写的跑的快,且便于封装,就用他的代码了. 代码 #include<cstdlib> #include<cstdio> #include<cm ...

  8. day41 python【事物 】【数据库锁】

    MySQL[五] [事物 ][数据库锁]   1.数据库事物 1. 什么是事务  事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性 ...

  9. vulcanjs 包类型

    npm 添加在pacakge.json 文件中的 meteor core 包 由meteor 框架提供的 meteor remote 包 从包服务器加载的,使用username:package 格式组 ...

  10. 无法对 数据库'XXXXX' 执行 删除,因为它正用于复制

    无法对 数据库'XXXXX' 执行 删除,因为它正用于复制. (.Net SqlClient Data Provider) 使用以下方式一般可以解决 sp_removedbreplication 'X ...