js实现从右向左缓缓浮出网页浮动层广告的方法


Posted in Javascript onMay 09, 2015

本文实例讲述了js实现从右向左缓缓浮出网页浮动层广告的方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>从右向左缓缓浮出的网页浮动层广告</title>
<script language="javascript">
var $ = function (d){return document.getElementById(d)};
var CLS={
create: function() {
return function() {
this.$ADD = function (fn){CLS.add(this,fn)};
this.init.apply(this, arguments);
}
},
add:function (obj,fn){
fn.apply(obj,arguments);
},
enterFrame:function (){
this.onEnterFrame=function (){};
this.$PLAY = function (g){
this.enterFrameP = this.enterFrameP || 10;
this.CLStimeIndex = CLS.ontimes.length;
CLS.ontimes.push(this);
window.clearTimeout(this.enterFrameTimeout);
window.clearInterval(this.enterFrameInterval);
if(g)this.enterFrameTimeout = window.setTimeout('CLS.ontimes['+this.CLStimeIndex+'].enterFrameInterval=window.setInterval("CLS.ontimes['+this.CLStimeIndex+'].onEnterFrame()",'+this.enterFrameP+')',parseInt(g*1000));
else this.enterFrameInterval = window.setInterval("CLS.ontimes["+this.CLStimeIndex+"].onEnterFrame()",this.enterFrameP);
}
this.$STOP = function (){
window.clearInterval(this.enterFrameInterval);
}
this.$SET = function (p){
this.enterFrameP = p;
}
},
ontimes:new Array()
};
CLS.Marquee = CLS.create();
CLS.Marquee.prototype = {
init:function (button,box,speed){
this.box = $(box);
this.tit = $(button)
this.kong = $("kong");
this.onOpen = true;
this.show = false;
this.time = 0;
this.speed = speed;
this.kong.style.height = this.box.offsetHeight +"px";
this.Maxw = this.box.offsetWidth-this.tit.offsetWidth;
this.box.style.right = -this.box.offsetWidth + "px";
this.boxTop = this.kong.offsetTop;
var _t = this;
this.tit.onclick = function (){
this.show = true;
if(_t.onOpen){
_t.onEnterFrame = _t.close;
_t.onOpen = false;
}else{
_t.onEnterFrame = _t.open;
_t.onOpen = true;
}
_t.$PLAY();
};
this.$ADD(CLS.enterFrame);
this.onEnterFrame = this.open;
this.$PLAY();
},
open:function(){
this.tit.innerHTML = "-";
var _r = parseInt(this.box.style.right);
var _b = (0 - _r)/30;
this.box.style.right = (_r + _b) +"px";
this.kong.style.top = (document.documentElement.scrollTop + this.boxTop) +"px";
if(_b==0 && !this.show){
this.time +=10;
if(this.time>=this.speed*1000){
this.show = true;
this.onOpen = false;
this.$STOP();
this.onEnterFrame = this.close;
this.$PLAY(); 
}
} 
},
close:function (){
this.tit.innerHTML = "+";
var _r = parseInt(this.box.style.right);
var _b = (-this.Maxw - _r)/5;
this.box.style.right = Math.round(_r + _b) +"px";
this.kong.style.top = (document.documentElement.scrollTop + this.boxTop) +"px";
}
};
window.onload = function (){
setTimeout(function(){new CLS.Marquee("tit","abc",10)},3000);
//tit是点击按钮的Id ,abc是浮动块的ID,10是显示时长
};
</script>
<style type="text/css">
<!--
#abc {
border: 1px solid #003399;
position: absolute;
height: 150px;
width: 220px;
right: -100%;
}
#abc #tit {
background-color: #0066FF;
position: relative;
height: 100%;
width: 20px;
color: #FFFFFF;
text-align: center;
float: left;
}
#kong {
position: absolute;
width: 100%;
top: 100px;
overflow: hidden;
top: 100px;
right: 0px;
}
.right {
float: right;
width: 190px;
padding: 5px;
}
-->
</style>
</head>
<body style="margin:0px;">
<!--浮动框外面套一层,防止出现横向滚动条-->
<div id="kong">
<!--浮动框-->
<div id="abc">
<div id="tit">-</div>
<div class="right">
<a href="/">网页上从右边缓缓弹出的广告框效果</a></div>
</div>
</div>
右侧广告3秒后弹出
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
js的闭包的一个示例说明
Nov 18 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
jquery插件制作 手风琴Panel效果实现
Aug 17 Javascript
防止按钮在短时间内被多次点击的方法
Mar 10 Javascript
Javascript单元测试框架QUnitjs详细介绍
May 08 Javascript
JS在可编辑的div中的光标位置插入内容的方法
Nov 20 Javascript
jquery图片切换实例分析
Apr 15 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
Aug 06 Javascript
JS Input里添加小图标的两种方法
Nov 11 Javascript
vue实现手机端省市区区域选择
Sep 27 Javascript
vue中 数字相加为字串转化为数值的例子
Nov 07 Javascript
react合成事件与原生事件的相关理解
May 13 Javascript
JS动画效果打开、关闭层的实现方法
May 09 #Javascript
js实现顶部可折叠的菜单工具栏效果实例
May 09 #Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
May 09 #Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 #Javascript
javasript实现密码的隐藏与显示
May 08 #Javascript
jquery实现动态改变div宽度和高度
May 08 #Javascript
jquery右下角自动弹出可关闭的广告层
May 08 #Javascript
You might like
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
python程序 创建多线程过程详解
2019/09/23 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
python各层级目录下import方法代码实例
2020/01/20 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
C/C++程序员常见面试题二
2015/11/19 面试题
业务助理岗位职责
2013/11/18 职场文书
小学数学教学反思
2014/02/02 职场文书
出纳担保书范文
2014/04/02 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
工作感想范文
2015/08/07 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
高中物理教学反思
2016/02/19 职场文书
Go语言grpc和protobuf
2022/04/13 Golang
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS