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 时间显示效果代码
Aug 23 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
html+js实现动态显示本地时间
Sep 21 Javascript
Javascript 遍历页面text控件详解
Jan 06 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
js字符串操作方法实例分析
May 06 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
非常酷炫的Bootstrap图片轮播动画
May 27 Javascript
VeeValidate在vue项目里表单校验应用案例
May 09 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
Jul 11 Javascript
vue-cli3 DllPlugin 提取公用库的方法
Apr 24 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
php生成xml简单实例代码
2009/12/16 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
Yii rules常用规则示例
2016/03/15 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
JavaScript中的Array对象使用说明
2011/01/17 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
python zip()函数使用方法解析
2019/10/31 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
Python的collections模块真的很好用
2021/03/01 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
护理学毕业生求职信
2013/11/14 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
初中政治教学反思
2016/02/23 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书