效果图:

文件位置摆放:

插件的js代码:

 $.extend({
pfAdv:function(options){
var defaults={
count:1,
startTop:200,
startLeft:200,
width:140,//ͼƬС
height:180,
imageSrc:"pfAdvPic.jpg",
step:1,
delay:30,
idStr:"pfAdv"
}
options= $.extend(defaults,options);
var html="";
html+="<div id="+options.idStr+" class='pfAdv'>";
html+="<div class='plCloseDiv'></div>";
html+="<div><img src="+options.imageSrc+"></div>";
html+="</div>";
$("body").append(html);//html
var advBoxObj=$("#"+options.idStr);//
advBoxObj.css({"position":"absolute","z-index":998}).width(options.width).height(options.height);//涨λ
$("img",advBoxObj).width(options.width).height(options.height);
var advH=advBoxObj.outerHeight();//ĸ߶
var advW=advBoxObj.outerWidth();//Ŀ
var advMaxTop=0;//top
var advMaxLeft=0;//left
var stepMashionX=1;//1,ʾˮƽstep,-1ʾˮƽstep
var stepMashionY=1;//1,ʾֱstep,-1ʾֱstep
var currentX=0;//ǰλ
var currentY=0;
var divToBrowTop=options.startTop;
var divToBrowLeft=options.startLeft;
function getScroll(){
var scrollTop=$(window).scrollTop();//뿪߶
var scrollLeft=$(window).scrollLeft();//
return {x:scrollLeft,y:scrollTop};
}
function move(){
var browW=$(window).width();//
var browH=$(window).height();//߶
var scroll=getScroll();
currentX=divToBrowLeft+scroll.x;//top
currentY=divToBrowTop+scroll.y;//left
advMaxTop=browH-advH+scroll.y;//top,
advMaxLeft=browW-advW+scroll.x;//left, if(currentY>=advMaxTop){
stepMashionY=-1;
currentY=divToBrowTop-options.step;
}
else if(currentY>scroll.y&&currentY<advMaxTop){
if(stepMashionY==-1)
currentY=divToBrowTop-options.step; else if(stepMashionY==1)
currentY=divToBrowTop+options.step;
else alert("ֱϵstepMashionY");
}
else if(currentY<=scroll.y){
stepMashionY=1;
currentY=divToBrowTop+options.step;
}
else {
alert("ֱϱȽ");
}
if(currentX>=advMaxLeft){
stepMashionX=-1;
currentX=divToBrowLeft-options.step;
}
else if(currentX>scroll.x&&currentX<advMaxLeft){
if(stepMashionX==-1){
currentX=divToBrowLeft-options.step;
}
else if(stepMashionX==1){
currentX=divToBrowLeft+options.step;
}
else alert("ˮƽϵstepMashionX")
}
else if(currentX<=scroll.x){
stepMashionX=1;
currentX=divToBrowLeft+options.step;
}
else {
alert("ˮƽϱȽ");
}
divToBrowLeft=currentX;
divToBrowTop=currentY;
//var scroll=getScroll();
currentX+=scroll.x;
currentY+=scroll.y;
advBoxObj.css({top:currentY+"px",left:currentX+"px"});
}
$(".plCloseDiv",advBoxObj).on("click",function(){advBoxObj.remove()})
//$(window).resize(function(){initNum();});
var moveMashion=null;
advBoxObj.bind("mouseover",function(){clearTimeout(moveMashion);}).bind("mouseleave",function(){moveMashion=setInterval(move,options.delay);})
moveMashion=setInterval(move,options.delay);
move();
}
});

css代码:

 .pfAdv{ }
.plCloseDiv{ width:16px; height:16px; background-image:url(pfAdvPicClose.jpg); background-repeat:no-repeat; position:absolute; top:; right:; cursor:pointer;}
.plCloseA{ color:#102a49; font-size:14px; font-family:""; text-decoration:none; }

插件的调用:

 $(function(){
$.pfAdv({});
})

自己写的jQuery浮动广告插件的更多相关文章

  1. jQuery 浮动标签插件,帮助你提升表单用户体验

    浮动标签模式(Float Label Pattern)是最新流行的一种表单输入域的内容提示方式,当用户在输入框输入内容的时候,原先占位符的内容向上移动,显示在输入的内容的上面.这里推荐的这款 jQue ...

  2. 自己写的一个jQuery对联广告插件

    效果图: 文件的位置摆放: 插件的代码: ;(function($){ $.extend({ dLAdv:function(options){ var defaults={ leftType:0,// ...

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

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

  4. JQuery浮动对象插件

    写了个插件,用来固定表的头部和尾部. /*! * smartFloat v1.0.1 * Copyright 2019- Richard * Licensed under MIT */ $.fn.ex ...

  5. 自己写的jquery 弹框插件

    html部分 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  6. 非常强大的jQuery万能浮动框插件

    支持hover, click, focus以及无事件触发:支持多达12种位置的定位,出界自动调整:支持页面元素加载,Ajax加载,下拉列表,提示层效果,tip类效果等:可自定义装载容器:内置UI不错的 ...

  7. jQuery手风琴广告展示插件

    效果说明:当鼠标移动到已折叠广告的标题后,折叠当前已展开的广告,并同步展开相应的折叠广告.这种Accordion效果,看似简单,但因为存在动画同步的问题,不能简单地用两个animate()来实现.必须 ...

  8. 用jQuery写了一个模态框插件

    用jQuery写了一个模态框插件 大家觉得下面的框框好看么, 水印可以去掉(这个任务交给你们了(- o -)~zZ); "info"框 $("div").con ...

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

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

随机推荐

  1. About RFC

    RFC说明 Request For Comments (RFC),是一系列以编号排定的文件,几乎所有的因特网标准都收录在RFC文件之中,如果你想成为网络方面的专家,那么RFC无疑是最重要也是最经常需要 ...

  2. SWIFT Function

    Swift中的函数跟JAVA语言的函数差不多,但也有差别,SWIFT中定义函数可以指定参数的名称这也是别的语言没有的,好处就是增加了可读性.其返回值是放在未尾的,如以下定义一个加法器: func ad ...

  3. Python: PS 图像调整--明度调整

    本文用 Python 实现 PS 图像调整中的明度调整: 我们知道,一般的非线性RGB亮度调整只是在原有R.G.B值基础上增加和减少一定量来实现的,而PS的明度调整原理还得从前面那个公式上去找.我们将 ...

  4. Locust 测试结果通过Matplotlib生成趋势图

    目的: 相信大家对于使用Loadrunner测试后的结果分析详细程度还是有比较深刻的感受的,每个请求,每个事务点等都会有各自的趋势指标,在同一张图标中展示.如下图: 而Locust自身提供的chart ...

  5. C语言基础:指针初级(补充) 分类: iOS学习 c语言基础 2015-06-10 21:54 19人阅读 评论(0) 收藏

    结构体指针:指向结构体指针的变量的指针. 结构体指针指向结构体第一个成员变量的首地址 ->:   指向操作符 定义的指针变量必须指向结构体的首地址,才可以使用  ->  访问结构体成员变量 ...

  6. [leetcode] 230. Kth Smallest Element in a BST 找出二叉搜索树中的第k小的元素

    题目大意 https://leetcode.com/problems/kth-smallest-element-in-a-bst/description/ 230. Kth Smallest Elem ...

  7. VC++实现解析快捷方式

    VC++实现解析快捷方式: http://blog.csdn.net/mydreamremindme/article/details/9826745 

  8. 51Nod:1995 三子棋

    1995 三子棋  题目来源: syu校赛 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 小的时候大家一定玩过"井"字棋吧.也就是在 ...

  9. OJ链接

    BNU..好难找..http://www.bnuoj.com

  10. 2018-2019-2 《网络对抗技术》Kali安装 Week1 20165212

    2018-2019-2 <网络对抗技术>Kali安装 Week1 20165212 1.完成安装linux kali和vm tools 装的第三遍成功安装.前面两次镜像文件不行,没驱动(网 ...