zoukankan      html  css  js  c++  java
  • 自己写的一个jQuery对联广告插件

    效果图:

    文件的位置摆放:

    插件的代码:

      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 
     59             var leftAdv=$("."+options.leftClass),
     60             rightAdv=$("."+options.rightClass),
     61             dlAdvCloseHeight=$(".dlAdvCloseDiv").eq(0).outerHeight();
     62             leftAdv.css({"z-index":options.leftZindex});
     63             rightAdv.css({"z-index":options.rightZindex});    
     64             function changeImgSize(imgObj,width,height){
     65                 height-=dlAdvCloseHeight;
     66                 imgObj.parent().width(width).height(height);
     67                 imgObj.css({height:"100%","100%"});
     68             }
     69            function getAdvTop(pos,type){//pos,左,右,type,效果
     70                 if(type===0){
     71                     if(pos==="left"){
     72                        return {top:options.leftToTop+"px"};
     73                     }
     74                     else if(pos==="right"){
     75                         return {top:options.rightToTop+"px"};
     76                     }
     77                 }
     78                else if(type===1){
     79                     var scrollTop=$(window).scrollTop();
     80                     var top=0;
     81                     if(pos==="left"){
     82                          top=options.leftToTop+scrollTop;
     83                         return {top:top+"px"};
     84                     }
     85                     else if(pos==="right"){
     86                          top=options.rightToTop+scrollTop;
     87                         return {top:top+"px"};
     88                     }
     89 
     90                 }
     91                else{alert("方法getAdvTop的type有误")}
     92            }
     93             var leftAdvSize={options.leftWidth+"px",height:options.leftHeight+"px"};
     94             var rightAdvSize={options.rightWidth+"px",height:options.rightHeight+"px"};
     95             var leftAdvPos={left:options.leftToLeft+"px"};
     96             var rightAdvPos={right:options.rightToRight+"px"};            
     97             changeImgSize($(".dlAdvleftImg"),options.leftWidth,options.leftHeight);
     98             changeImgSize($(".dlAdvRightImg"),options.rightWidth,options.rightHeight);
     99             function scrollMove(num){//num是数值,不同的数值表示的不同的缓慢恢复的对象
    100                 $(window).scroll(function(){
    101                     var scrollTop=$(window).scrollTop(),top=0;
    102                     if(num===-1){//左边
    103                          top=scrollTop+options.leftToTop;
    104                         setTimeout(function(){
    105                             leftAdv.css({top:top+"px"});
    106                         },options.leftTime);
    107                     }
    108                     else if(num===1){//右边
    109                           top=options.rightToTop+scrollTop;
    110                        // rightAdv.animate({top:top+"px"},1000)
    111                         setTimeout(function(){
    112                             //rightAdv.animate({top:top+"px"},1000)
    113                             rightAdv.css({top:top+"px"});
    114                         },options.rightTime)
    115 
    116                     }
    117                     else if(num===2){//两边
    118                         var leftTop=scrollTop+options.leftToTop;
    119                         var rightTop=scrollTop+options.rightToTop;
    120                         setTimeout(function(){
    121                             leftAdv.css({top:leftTop+"px"});
    122                         },options.leftTime)
    123                         setTimeout(function(){
    124                             rightAdv.css({top:rightTop+"px"});
    125                         },options.rightTime);
    126                     }
    127                 });
    128             }
    129          var whoMove=0;//0,都不缓慢移动,-1,左边缓慢移动,1表示右边缓慢移动,2表示都移动
    130         if(options.leftType===0){//稳固不动
    131             leftAdv.css({"position":"fixed"}).css(getAdvTop("left",options.leftType)).css(leftAdvSize).css(leftAdvPos);
    132         }
    133             else if(options.leftType===1){//缓慢恢复
    134             leftAdv.css({"position":"absolute"}).css(getAdvTop("left",options.leftType)).css(leftAdvSize).css(leftAdvPos);
    135             whoMove=-1;
    136         }
    137             else {
    138             alert("左对联广告的效果参数传递有误");
    139         }
    140             if(options.rightType===0){
    141                 rightAdv.css({"position":"fixed"}).css(getAdvTop("right",options.rightType)).css(rightAdvSize).css(rightAdvPos);
    142             }
    143             else if(options.rightType===1){
    144                 rightAdv.css({"position":"absolute"}).css(getAdvTop("right",options.rightType)).css(rightAdvSize).css(rightAdvPos);
    145                 whoMove=(whoMove===0?1:2);
    146             }
    147             else {
    148                 alert("右对联广告的效果参数传递有误");
    149             }
    150             if(whoMove===0){}//都不缓慢恢复
    151             else if(whoMove===-1){//左边缓慢移动
    152 scrollMove(whoMove);
    153             }
    154             else if(whoMove===1){//右边缓慢移动
    155                 scrollMove(whoMove)
    156              }
    157             else if(whoMove===2){//左右都缓慢移动
    158                 scrollMove(whoMove)
    159             }
    160         }
    161         });
    162         })(jQuery);
    163  

    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{ /*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>
  • 相关阅读:
    Linux 文件及目录管理命令基础
    MHA高可用及读写分离
    MySQL的备份和回复
    mysql的主从复制
    MySQL索引管理及执行计划
    [LeetCode]Linked List Cycle II解法学习
    浅谈reverse_iterator的base()函数
    [LeetCode]LRU Cache有个问题,求大神解答【已解决】
    分享一篇不错的博文《写给准备参加秋招的学弟学妹们~一定要来看哦~》
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/3586266.html
Copyright © 2011-2022 走看看