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 相关文章推荐
javascript中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
JavaScript Chart 插件整理
Jun 18 Javascript
js操作table示例(个人心得)
Nov 29 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
Feb 18 Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 Javascript
jquery实现网页定位导航
Aug 23 Javascript
JavaScript实现的选择排序算法实例分析
Apr 14 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
基于Vue过渡状态实例讲解
Sep 14 Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
JavaScript变量声明var,let.const及区别浅析
Apr 23 Javascript
浅析JavaScript异步代码优化
Mar 18 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的日期与时间函数技巧
2008/04/24 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
python socket 超时设置 errno 10054
2014/07/01 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python删除过期log文件操作实例解析
2018/01/31 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Django 框架模型操作入门教程
2019/11/05 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
教师节大会主持词
2015/07/06 职场文书
亲情作文之母爱
2019/09/25 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
MySQL 字符集 character
2022/05/04 MySQL