效果图:

文件位置摆放:

插件的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. Linux:man命令显示颜色

    man命令显示颜色 在.bashrc下添加 export LESS_TERMCAP_mb=$'\E[01;31m' export LESS_TERMCAP_md=$'\E[01;31m' export ...

  2. android:Unsupported major.minor version 52.0

    错误描述 使用android studio项目编译过程报如下错误: java.lang.UnsupportedClassVersionError: com/android/build/gradle/A ...

  3. 前端开发 —— BOM

    0. BOM vs. DOM BOM:Browser Object Model,浏览器对象模型,是在 web 中使用 JavaScript 的绝对核心: BOM:提供了独立于内容而与浏览器窗口进行交互 ...

  4. [LeetCode&Python] Problem 872. Leaf-Similar Trees

    Consider all the leaves of a binary tree.  From left to right order, the values of those leaves form ...

  5. 与众不同 制作会唱歌的WinRAR - imsoft.cnblogs

    为了使用方便,我们可能会把RAR压缩包制作成自解压文件.WinRAR自带的自解压模块虽然使用很方便,但千篇一律的外观看起来实在 乏味.其实,只要通过简单改造,你就可以制作出与众不同,声色俱佳的WinR ...

  6. 51Nod:活动安排问题之二(贪心)

    有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个室? 输入 第一行一个正整数n (n <= 10000)代表活动的个数. ...

  7. python 二维list取列

    b = [i[0] for i in a] # 从a中的每一行取第一个元素.

  8. StreamSets 相关文章

    相关streamsets 文章(不按顺序) 学习视频-百度网盘 StreamSets 设计Edge pipeline StreamSets Data Collector Edge 说明 streams ...

  9. sql server 阻塞与锁

    SQL Server阻塞与锁 在讨论阻塞与加锁之前,需要先理解一些核心概念:并发性.事务.隔离级别.阻塞锁及死锁. 并发性是指多个进程在相同时间访问或者更改共享数据的能力.一般情况而言,一个系统在互不 ...

  10. Centos下zookeeper的安装配置

    下载安装包,下载地址 http://zookeeper.apache.org/releases.html,我下载的版本是zookeeper-3.4.9.tar.gz. # tar xvzf zooke ...