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 相关文章推荐
Jquery 实现图片轮换
Jan 28 Javascript
简介AngularJS的视图功能应用
Jun 17 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
Aug 26 Javascript
基于BootStrap实现局部刷新分页实例代码
Aug 08 Javascript
javascript完美实现给定日期返回上月日期的方法
Jun 15 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
Node层模拟实现multipart表单的文件上传示例
Jan 02 Javascript
vue-cli配置文件——config篇
Jan 04 Javascript
Vue引入sass并配置全局变量的方法
Jun 27 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
详解JavaScript 浮点数运算的精度问题
Jul 23 Javascript
ES6函数实现排它两种写法解析
May 13 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
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python 使用多属性来进行排序
2019/09/01 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
维德科技C#面试题笔试题
2015/12/09 面试题
旅游安全协议书
2014/04/21 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
美术教师个人总结
2015/02/06 职场文书
起诉书格式范文
2015/05/20 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android