自己写的jQuery浮动广告插件
效果图:
文件位置摆放:
插件的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&¤tY<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&¤tX<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浮动广告插件的更多相关文章
- jQuery 浮动标签插件,帮助你提升表单用户体验
浮动标签模式(Float Label Pattern)是最新流行的一种表单输入域的内容提示方式,当用户在输入框输入内容的时候,原先占位符的内容向上移动,显示在输入的内容的上面.这里推荐的这款 jQue ...
- 自己写的一个jQuery对联广告插件
效果图: 文件的位置摆放: 插件的代码: ;(function($){ $.extend({ dLAdv:function(options){ var defaults={ leftType:0,// ...
- 亲手用模块化方式写一个jquery QQ表情插件。
在回复或是评论的时候,很多时间都需要有回复表情的功能,然后而需要插入QQ表情可以是最常见的. 插件也写多很多个了,这次写插件就下了一个决定.就是使用模块化来开发. 最后在我的源代码中有这样子一段: v ...
- JQuery浮动对象插件
写了个插件,用来固定表的头部和尾部. /*! * smartFloat v1.0.1 * Copyright 2019- Richard * Licensed under MIT */ $.fn.ex ...
- 自己写的jquery 弹框插件
html部分 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...
- 非常强大的jQuery万能浮动框插件
支持hover, click, focus以及无事件触发:支持多达12种位置的定位,出界自动调整:支持页面元素加载,Ajax加载,下拉列表,提示层效果,tip类效果等:可自定义装载容器:内置UI不错的 ...
- jQuery手风琴广告展示插件
效果说明:当鼠标移动到已折叠广告的标题后,折叠当前已展开的广告,并同步展开相应的折叠广告.这种Accordion效果,看似简单,但因为存在动画同步的问题,不能简单地用两个animate()来实现.必须 ...
- 用jQuery写了一个模态框插件
用jQuery写了一个模态框插件 大家觉得下面的框框好看么, 水印可以去掉(这个任务交给你们了(- o -)~zZ); "info"框 $("div").con ...
- 自己写的一个jQuery轮播插件
大概是四月初开始写的,中间停了有一个月吧.这是我在Github的第一个项目.项目地址:https://github.com/linzb93/jquery.slide.js. 轮播应该是最好写的插件了, ...
随机推荐
- Linux中MySQL中文乱码问题
一. 问题描述 登录后查看mysql默认编码: mysql> show variables like 'character%'; +--------------------------+---- ...
- C高级第四次作业
作业要求一 最简单的wordcount 具体要求:http://www.cnblogs.com/xinz/p/7426280.html 1.设计思路: 0.0版本设计思路: 第一步:读入用户想要操作的 ...
- OK335xS canutils deal with compile error
/************************************************************************************** * OK335xS ca ...
- No.02——第一次使用Android Studio,并创建出Hello World
1.第一次打开Studio 2.点击创建新项目 然后填上相关信息,注意在Company Domain(公司域名)地方的填写,不同于Eclipse对应实际电脑中文件夹,而是在你所选择的Project文件 ...
- FZU OJ 1056 :扫雷游戏
Problem 1056 扫雷游戏 Accept: 2624 Submit: 6903Time Limit: 1000 mSec Memory Limit : 32768 KB Prob ...
- hdu 5312 dp(背包)、二分图或其他姿势
题意:给出一个二分图(不一定连通),问最多能加多少边,使它仍然是二分图 BC周年庆第四题,貌似终判再终判之后数据还是有问题``` 据说貌似可以用bitset搞,而且姿势优美是正解```然而我还是用的d ...
- benthos 几个方便的帮助命令
benthos 的命令行帮助做的是比较方便的,基本上就是一个自包含的帮助文档 全部命令 benthos --help 查询系统支持的caches benthos -list-caches 说明 使用帮 ...
- 转 JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- Spring Cloud Netflix项目进入维护模式
任何项目都有其生命周期,Spring Could Netflix也不例外,官宣已进入维护模式,如果在新项目开始考虑技术选型时要考虑到这点风险,并考虑绕道的可能性. 原创: itmuch IT牧场 这 ...
- commonJS模块规范 和 es6模块规范 区别
ES6 模块与 CommonJS 模块的差异 CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用. CommonJS 模块是运行时加载,ES6 模块是编译时输出接口. Commo ...