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 相关文章推荐
jQuery 源码分析笔记(3) Deferred机制
Jun 19 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
Jun 01 Javascript
基于Vue.js实现tab滑块效果
Jul 23 Javascript
js单页hash路由原理与应用实战详解
Aug 14 Javascript
webpack中如何使用雪碧图的示例代码
Nov 11 Javascript
vue实现弹幕功能
Oct 25 Javascript
加速vue组件渲染之性能优化
Apr 09 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
解决Vue watch里调用方法的坑
Nov 07 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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
js setTimeout 常见问题小结
2013/08/13 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
轮播图组件js代码
2016/08/08 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
js实现一个简易计算器
2020/03/30 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
Python常用的爬虫技巧总结
2016/03/28 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
Java面试题:为什么要用Java
2012/05/11 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
2014年党小组工作总结
2014/12/20 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL