JavaScript实现上下浮动的窗口效果代码


Posted in Javascript onOctober 12, 2015

本文实例讲述了JavaScript实现上下浮动的窗口效果代码。分享给大家供大家参考。具体如下:

这里介绍使用JavaScript实现上下浮动的窗口,在垂直方向上漂浮,代码内的JS函数有超丰富的浮动层定义功能,像浮动层位置高度、初始化事件触发器、设定浮动层为可见,用style.left设定浮动层左边距、浮动层的运动速度等,还有更多的设置选项都能实现。

运行效果截图如下:

JavaScript实现上下浮动的窗口效果代码

在线演示地址如下:

具体代码如下:

<HTML>
<HEAD>
<TITLE>上下浮动的窗口</TITLE>
<style type="text/css">
<!--
a:hover{color:00ff00}
a {color:000000;text-decoration:none}
-->
</style>
</HEAD>
<BODY>
<div id="floatpoint" STYLE="position:absolute;visibility:visible;">
<!--两个DIV之间放上你需要显示的内容-->
<table border=1 cellspacing="0" cellpadding="0" bordercolorlight="#000000" bordercolor="#FFFFFF">
 <tr>
    <td align=center bgcolor=#E3E3E3 style="color:HIGHLIGHTTEXT">
  <font color="#000000">
    最新消息!</font>
    </td>
 </tr>
 <tr>
    <td bgcolor=WINDOW style="font-size:9pt;color:WINDOWTEXT">
    <a href="#" target="_blank">三水点靠木</a><br>
    <div></div>
    </td>
 </tr>
</table>
<!--两个DIV之间放上你需要显示的内容-->
</div>
<script LANGUAGE="JavaScript1.2">
//这部分为用户自定义区
var XX=10; // 浮动层的X坐标,即左边距
var xstep=1; // 移动步长,此参数越小,移动越平滑,最小值为1
var delay_time=60; // 每步的时间间隔,此参数越小,移动速度越快
//以下部分请勿随意改动
var YY=0; 
var ch=0;
var oh=0;
var yon=0;
var ns4=document.layers?1:0 //判断浏览器类型是否是NS4
var ie=document.all?1:0 //判断浏览器类型是否是IE
var ns6=document.getElementById&&!document.all?1:0 //判断浏览器类型是否是NS6
if(ie){ //如果是IE
YY=document.body.clientHeight; //由clientHeight取得页面的高度
floatpoint.style.top=YY; //将浮动层位置调整到页面底部
}
else if (ns4){ //如果是NS4
YY=window.innerHeight; //由innerHeight取得页面的高度
document.floatpoint.pageY=YY; //将浮动层位置调整到页面底部
document.floatpoint.visibility="hidden"; //将浮动层隐藏。
}
else if (ns6){ //如果是NS6
YY=window.innerHeight //由innerHeight取得页面的高度
document.getElementById('floatpoint').style.top=YY //将浮动层位置调整到页面底部
}
function reloc1(){
if(yon==0){YY=YY-xstep;} //如果当前应该上移,则减小YY值
else{YY=YY+xstep;} //否则增加YY值下移
if (ie){ //如果是IE
ch=document.body.clientHeight; //取页面高度
oh=floatpoint.offsetHeight; //取浮动层的高度
}
else if (ns4){ //如果是NS4
ch=window.innerHeight; //取页面高度
oh=document.floatpoint.clip.height; //取浮动层的高度
}
else if (ns6){ //如果是NS6
ch=window.innerHeight //取页面高度
oh=document.getElementById("floatpoint").offsetHeight //取浮动层的高度
}
if(YY<0){yon=1;YY=0;} //如果浮动层超出了上界,则设定移动方向为向下;并设定层的位置为正好在上界处
if(YY>=(ch-oh)){yon=0;YY=(ch-oh);} //如果浮动层超出了下界,则设定移动方向为向上;并设定层的位置为正好在下界处
if(ie){ //如果是IE
floatpoint.style.left=XX; //用style.left设定浮动层左边距
floatpoint.style.top=YY+document.body.scrollTop; //用style.top设定浮动层上边距
}
else if (ns4){ //如果是NS4
document.floatpoint.pageX=XX; //用.pageX设定浮动层左边距
document.floatpoint.pageY=YY+window.pageYOffset; //用.pageY设定浮动层上边距
}
else if (ns6){ //如果是NS6
document.getElementById("floatpoint").style.left=XX
document.getElementById("floatpoint").style.top=YY+window.pageYOffset
}
}
function onad(){
if(ns4) //如果是NS4
document.floatpoint.visibility="visible"; //设定浮动层为可见
loopfunc(); //开始主循环,以不断改变浮动层位置
}
function loopfunc(){
reloc1(); //调整浮动层位置
setTimeout('loopfunc()',delay_time); //设定下一次调整的延时
}
if (ie||ns4||ns6)
window.onload=onad //初始化事件触发器
</script>
</BODY>
</HTML>

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

Javascript 相关文章推荐
JS 自定义带默认值的函数
Jul 21 Javascript
Jquery实现的简单轮播效果【附实例】
Apr 19 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
Vue.Js中的$watch()方法总结
Mar 23 Javascript
使用ES6语法重构React代码详解
May 09 Javascript
Vue三层嵌套路由的示例代码
May 05 Javascript
vue中引入mxGraph的步骤详解
May 17 Javascript
了解javascript中变量及函数的提升
May 27 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
Sep 11 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
javascript函数式编程程序员的工具集
Oct 11 #Javascript
深入探讨javascript函数式编程
Oct 11 #Javascript
Javascript函数式编程语言
Oct 11 #Javascript
Javascript函数式编程简单介绍
Oct 11 #Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
Oct 10 #Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
Oct 10 #Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 #Javascript
You might like
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
javascript内存管理详细解析
2013/11/11 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
js实现购物车功能
2018/06/12 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
python3访问sina首页中文的处理方法
2014/02/24 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
Python制作Windows系统服务
2017/03/25 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
不用游标的SQL语句有哪些
2012/09/07 面试题
DOM和JQuery对象有什么区别
2016/11/11 面试题
英语系本科生求职信范文
2013/12/18 职场文书
护士毕业生自荐信
2014/02/07 职场文书
行政助理工作职责范本
2014/03/04 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
泰山导游词
2015/02/02 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
详解Flask开发技巧之异常处理
2021/06/15 Python
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android