php实现浮动框,简单实现js浮动框

本文实例为大家分享了js浮动框的实现代码,供大家参考,具体内容如下

一.在需要加入浮动框的页面中加入如下css代码:

#msg_win {

border: 1px solid #A67901;

background: #EAEAEA;

width: 240px;

position: absolute;

right: 0;

font-size: 12px;

font-family: Arial;

margin: 0px;

display: none;

overflow: hidden;

z-index: 99;

}

#msg_win .icos {

position: absolute;

top: 2px;

*top: 0px;

right: 2px;

z-index: 9;

}

.icos a {

float: left;

color: #833B02;

margin: 1px;

text-align: center;

font-weight: bold;

width: 14px;

height: 22px;

line-height: 22px;

padding: 1px;

text-decoration: none;

font-family: webdings;

}

.icos a:hover {

color: #fff;

}

#msg_title {

background: #BBDEF6;

border-bottom: 1px solid #A67901;

border-top: 1px solid #FFF;

border-left: 1px solid #FFF;

color: #000;

height: 25px;

line-height: 25px;

text-indent: 5px;

}

#msg_content {

margin: 5px;

margin-right: 0;

width: 230px;

height: 126px;

overflow: hidden;

}

二.js代码(注意:该代码要添加整个页面最后,目的是页面加载完成时加载它)

var Message={

set: function() {//最小化与恢复状态切换

var set=this.minbtn.status == 1?[0,1,'block',this.char[0],'最小化']:[1,0,'none',this.char[1],'展开'];

this.minbtn.status=set[0];

this.win.style.borderBottomWidth=set[1];

this.content.style.display =set[2];

this.minbtn.innerHTML =set[3]

this.minbtn.title = set[4];

this.win.style.top = this.getY().top;

},

close: function() {//关闭

this.win.style.display = 'none';

window.onscroll = null;

},

setOpacity: function(x) {//设置透明度

var v = x >= 100 ? '': 'Alpha(opacity=' + x + ')';

this.win.style.visibility = x<=0?'hidden':'visible';//IE有绝对或相对定位内容不随父透明度变化的bug

this.win.style.filter = v;

this.win.style.opacity = x / 100;

},

show: function() {//渐显

clearInterval(this.timer2);

var me = this,fx = this.fx(0, 100, 0.1),t = 0;

this.timer2 = setInterval(function() {

t = fx();

me.setOpacity(t[0]);

if (t[1] == 0) {clearInterval(me.timer2) }

},10);

},

fx: function(a, b, c) {//缓冲计算

var cMath = Math[(a - b) > 0 ? "floor": "ceil"],c = c || 0.1;

return function() {return [a += cMath((b - a) * c), a - b]}

},

getY: function() {//计算移动坐标

var d = document,b = document.body, e = document.documentElement;

var s = Math.max(b.scrollTop, e.scrollTop);

var h = /BackCompat/i.test(document.compatMode)?b.clientHeight:e.clientHeight;

var h2 = this.win.offsetHeight;

return {foot: s + h + h2 + 2+'px',top: s + h - h2 - 2+'px'}

},

moveTo: function(y) {//移动动画

clearInterval(this.timer);

var me = this,a = parseInt(this.win.style.top)||0;

var fx = this.fx(a, parseInt(y));

var t = 0 ;

this.timer = setInterval(function() {

t = fx();

me.win.style.top = t[0]+'px';

if (t[1] == 0) {

clearInterval(me.timer);

me.bind();

}

},10);

},

bind:function (){//绑定窗口滚动条与大小变化事件

var me=this,st,rt;

window.onscroll = function() {

clearTimeout(st);

clearTimeout(me.timer2);

me.setOpacity(0);

st = setTimeout(function() {

me.win.style.top = me.getY().top;

me.show();

},600);

};

window.onresize = function (){

clearTimeout(rt);

rt = setTimeout(function() {me.win.style.top = me.getY().top},100);

}

},

init: function() {//创建HTML

function $(id) {return document.getElementById(id)};

this.win=$('msg_win');

var set={minbtn: 'msg_min',closebtn: 'msg_close',title: 'msg_title',content: 'msg_content'};

for (var Id in set) {this[Id] = $(set[Id])};

var me = this;

this.minbtn.onclick = function() {me.set();this.blur()};

this.closebtn.onclick = function() {me.close()};

this.char=navigator.userAgent.toLowerCase().indexOf('firefox')+1?['_','::','×']:['0','2','r'];//FF不支持webdings字体

this.minbtn.innerHTML=this.char[0];

this.closebtn.innerHTML=this.char[2];

setTimeout(function() {//初始化最先位置

me.win.style.display = 'block';

me.win.style.top = me.getY().foot;

me.moveTo(me.getY().top);

},0);

return this;

}

};

Message.init();

三.html代码(注意:该代码要放置到body的最后)


_×

设备运行情况-->

${commonMsg.devRun }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值