本文实例讲述了JS实现弹出浮动窗口。分享给大家供大家参考。具体如下:

这里介绍的JS弹出浮动窗口,支持鼠标拖动和关闭,点击链接文字后弹出层窗口,也称作是弹出式对话框吧。

关于一些参数说明:

bodycontent:要在窗口中显示的内容

title:窗口的标题

removeable:窗口是否能拖动

注意:内容窗体的高度是height-30px,请计算好要显示的内容高度和宽度。

注:在火狐或chrome下效果最佳,IE8下可能有些小问题。

点击此处查看运行效果:

http://demo.jb51.net/js/2015/js-float-window-mousemove-codes/

运行效果图如下:

具体代码:

Js弹出浮动窗口,支持鼠标拖动和关闭

/**

关于一些参数说明:

*bodycontent:要在窗口显示的内容,dom对象

*title:窗口标题,字符串类型

*removeable:窗口能否拖动,布尔类型

*注意:内容窗体的高度是height-30px,请计算好你要显示的内容的高度和宽度。弹出窗的id为"223238909",所以你的页面不要再取值为"223238909"的id了,以防js执行出错*/

function createdialog(width,height,bodycontent,title,removeable){

if(document.getElementById("www_jb51_net")==null){

/*创建窗口的组成元素*/

var dialog = document.createElement("div");

var dialogtitlebar= document.createElement("div");

var dialogbody = document.createElement("div");

var dialogtitleimg = document.createElement("span");

var dialogtitle = document.createElement("span");

var dialogclose = document.createElement("span");

var closeaction = document.createElement("button");

/*为窗口设置一个id,id如此怪异是为了尽量避免与其他用户取的id相同而出错*/

dialog.id = "223238909";

/*组装对话框标题栏,按从里到外的顺序组装*/

dialogtitle.innerHTML = title;

dialogtitlebar.appendChild(dialogtitleimg);

dialogtitlebar.appendChild(dialogtitle);

dialogtitlebar.appendChild(dialogclose);

dialogclose.appendChild(closeaction);

/*组装对话框主体内容*/

if(bodycontent!=null){

bodycontent.style.display = "block";

dialogbody.appendChild(bodycontent);

}

/*组装成完整的对话框*/

dialog.appendChild(dialogtitlebar);

dialog.appendChild(dialogbody);

/*设置窗口组成元素的样式*/

var templeft,temptop,tempheight//窗口的位置(将窗口放在页面中间的辅助变量)

var dialogcssText,dialogbodycssText;//拼出dialog和dialogbody的样式字符串

templeft = (document.body.clientWidth-width)/2;

temptop = (document.body.clientHeight-height)/2;

tempheight= height-30;

dialogcssText= "position:absolute;background:#65c294;padding:1px;border:4px;top:"+temptop+"px;left:"+templeft+"px;height:"+height+"px;width:"+width+"px;";

dialogbodycssText = "width:100%;background:#ffffff;"+"height:" + tempheight + "px;";

dialog.style.cssText = dialogcssText;

dialogtitlebar.style.cssText = "height:30px;width:100%;background:url(images/titlebar.png) repeat;cursor:move;";

dialogbody.style.cssText = dialogbodycssText;

dialogtitleimg.style.cssText = "float:left;height:20px;width:20px;background:url(images/40.gif);"+"display:block;margin:4px;line-height:20px;";

dialogtitle.style.cssText = "font-size:16px;float:left;display:block;margin:4px;line-height:20px;";

dialogclose.style.cssText = "float:right;display:block;margin:4px;line-height:20px;";

closeaction.style.cssText = "height:20px;width:24px;border-width:1px;"+"background-image:url(images/close.png);cursor:pointer;";

/*为窗口元素注册事件*/

var dialogleft = parseInt(dialog.style.left);

var dialogtop = parseInt(dialog.style.top);

var ismousedown = false;//标志鼠标是否按下

/*关闭按钮的事件*/

closeaction.onclick = function(){

dialog.parentNode.removeChild(dialog);

}

/*实现窗口的移动,这段代码很典型,网上很多类似的代码*/

if(removeable == true){

var ismousedown = false;

var dialogleft,dialogtop;

var downX,downY;

dialogleft = parseInt(dialog.style.left);

dialogtop = parseInt(dialog.style.top);

dialogtitlebar.onmousedown = function(e){

ismousedown = true;

downX = e.clientX;

downY = e.clientY;

}

document.onmousemove = function(e){

if(ismousedown){

dialog.style.top = e.clientY - downY + dialogtop + "px";

dialog.style.left = e.clientX - downX + dialogleft + "px";

}

}

/*松开鼠标时要重新计算当前窗口的位置*/

document.onmouseup = function(){

dialogleft = parseInt(dialog.style.left);

dialogtop = parseInt(dialog.style.top);

ismousedown = false;

}

}

return dialog;

}//end if(if的结束)

}

table{background:#b2d235;}

button{font-size:12px;height:23;background:#ece9d8;border-width:1;}

#linkurl,#linkname,#savelink{width:100px;}

点击生成窗口

链接文字
链接地址
添加

var here = document.getElementById("here");

var login = document.getElementById("login");

var clickhere = document.getElementById("clickhere");

clickhere.onclick = function(){

here.appendChild(createdialog(400,95+30,login,"欢迎光临脚本之家",true));

}

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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

html弹出窗口是浮动,JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解相关推荐

  1. Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(三)

    Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(三) 本篇目录: 六.完整构建整个[旋转的精灵女孩]实例 (1).新建.启动webGL工程空间 (2).构建项目的目录层次结构 (2. ...

  2. Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(二)

    Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(二) 本篇目录: 五.实例中所使用的代码语法详细解释 (1).构建一个三维空间场景 (2).选择一个透视投影相机作为观察点 (a).创 ...

  3. Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

    Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一) 本文目录: 一.[旋转的精灵女孩]案例运行效果 二.Three.js简介 三.Three.js代码正常运行显示条件 (1)不载入 ...

  4. window.open返回值实例详解(子窗口向父窗口回显)

    window.open返回值实例详解(子窗口向父窗口回显) window.open实例: 1.父页面: <script language="javascript" type= ...

  5. html5走格子游戏,JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解 发布时间:2020-09-26 20:42:24 来源:脚本之家 阅读:112 作者:krapnik 本文实例讲述了JS/HTML5游戏常 ...

  6. 《ANSYS Workbench有限元分析实例详解(静力学)》——第2章 ANSYS Workbench主界面设置2.1 窗口设置...

    本节书摘来自异步社区<ANSYS Workbench有限元分析实例详解(静力学)>一书中的第2章,第2.1节,作者: 周炬 , 苏金英 更多章节内容可以访问云栖社区"异步社区&q ...

  7. Linux 创建网页服务,Linux使用Node.js建立访问静态网页的服务实例详解

    Linux使用Node.js建立访问静态网页的服务实例详解 一.安装node.js运行所需要的环境,: 二.创建node目录(/node/www),并在目录下创建node.js服务文件server.j ...

  8. java打印菱形图案_java打印出菱形图案实例详解

    第一步:首先对图像进行解析 想要打印该图形必须要进行多层循环嵌套,分两个部分进行打印. 第一部分为上半部分前四行,他们是递增的关系,后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环.并且由 ...

  9. php 正则 花括号,JS+正则取得小括号、中括号及花括号内容步骤详解

    这次给大家带来JS+正则取得小括号.中括号及花括号内容步骤详解,JS+正则取得小括号.中括号及花括号内容的注意事项有哪些,下面就是实战案例,一起来看一下. JS 正则表达式 获取小括号 中括号 花括号 ...

最新文章

  1. Svcutil.exe详解
  2. 华为nova 5i Pro发布:麒麟810+4800万像素AI四摄
  3. 占据语音入口?苹果或将在2020年WWDC上推出SiriOS
  4. IE webDriver 驱动下载地址
  5. 微信公众平台消息接口开发(34)微信墙之表白墙/婚礼墙/晚会墙/会议墙/晒单墙/照片墙/历史墙...
  6. 孩子要经历什么后,才能懂得学业的重要和父母的不易?
  7. 【转载】Linux等类Unix系统学习用书那点事儿!
  8. 2万字总结《MybatisPlus—为简化开发而生》
  9. 运维自动化-ansible
  10. cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘
  11. 163邮件服务器设置 端口号,163邮箱端口设置
  12. 虚拟机 服务器死机,VMware虚拟机开机卡死黑屏,进不了系统解决办法
  13. PageOffice中如何调用ZoomSeal签章系统中的印章
  14. 30个python的最佳实践,快去试试吧!
  15. 区块链隐私保护文献 An Efficient NIZK Scheme for Privacy-Preserving Transactions over Account-Model Blockchain
  16. 将https安全证书导入jdk中
  17. 李潤慶 崇德齋 頗有逗撓
  18. vmware 桥接模式设置桥接到无线网卡
  19. 小企业无线局域网服务器,无线局域网AAA服务器的软件设计与实现
  20. Excel公式-提取字符串中首次出现的数值

热门文章

  1. 勤劳的人,一步一个脚印,加油
  2. 涿州蓝天计算机学校,涿州职教中心计算机专业高考班人才培养方案.doc
  3. 腾讯云数据库MySQL架构双节点、三节点和单节点区别对比
  4. zookeeper到底是干什么的?
  5. python实现微信抢红包神器_快过年啦,还怕手速慢,我用Python自动抢红包!
  6. 可证明安全——公钥加密
  7. 判断文件是否存在,如果不存在,则创建
  8. ubuntu16 黑主题_Ubuntu16.04 桌面美化
  9. activiti7 流程撤回的两种实现思路
  10. 变频器的测试软件,变频器自动测试系统的软硬件组成及特性介绍