JS控制弹出悬浮窗口(一览画面)的实例代码

在web项目开发中经常遇到在一览画面中用户需要查看某一条记录的详细信息。如果用迁移画面的方式处理,速度会比较慢,而且用户体验不是太好。如果采用点击该条记录的详细链接时弹出一个层显示在当前画面的话,处理速度很快,而且用户感觉也比较新颖。下面我以某个对日电子商务网站为实例说明下它的实现方式。

1、jsp页面上弹出层的代码

<!-- 物流详情弹出页面 start -->
<s:iterator value="lrVo" var="lrVo" id="lrVo" status="st">
<div class="logisticscenter_xq" style="display: none;" id='<s:property value="#lrVo.logisticNO"/>'>
<dl>
<dt><strong><s:text name="struts.webui.logistics.label.logisticsDetails"/>:</strong></dt>
<dd><strong class="close_wind">X</strong></dd>
</dl>
<div class="information logistics_win">
<table width="" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="r_text"><span class="icon9">*</span><s:text name="struts.webui.logistics.label.logisticsNumber"/>:</td>
<td></td>
<td colspan="3" id="logisticNo"><s:property value="#lrVo.logisticNO"/></td>
</tr>
<tr>
<td valign="top" class="r_text"><span class="icon9">*</span><s:text name="struts.webui.logistics.label.distribution"/>:</td>
<td></td>
<td colspan="3" style="text-align:left" id="content"><s:property value="#lrVo.content" escape="false"/></td>
</tr>
</table>
</div>
</div>
</s:iterator>
<!--物流详情弹出窗口 end--> 

层样式代码:

.logisticscenter_xq{
position: absolute;
width:710px;
border:solid 2px #787878;
background: #edfcfe;
z-index: 2;
} 

我的处理时将弹出层放置到整个网站页面的layout.jsp,网站中所有页面的布局都继承它。该网站采用tiles框架统一对页面布局。

2、计算对象居中要设置的left值和top值

我把这一步要完成的功能写成一个js文件,主要是根据用户在一览页面上鼠标点击的坐标位置,动态地显示该条记录的层窗口。主要代码如下:

// 计算对象居中需要设置的left和top值
// 参数:
// _w - 对象的宽度
// _h - 对象的高度
function getLT(_w,_h)
{
var de = document.documentElement;
// 获取当前浏览器窗口的宽度和高度
// 兼容写法,可兼容ie,ff
var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
var h = (de&&de.clientHeight) || document.body.clientHeight;
// 获取当前滚动条的位置
// 兼容写法,可兼容ie,ff
var st= (de&&de.scrollTop) || document.body.scrollTop;
var topp=0;
if(h>_h)
topp=(st+(h - _h)/2);
else
topp=st;
var leftp = 0;
if(w>_w)
leftp = ((w - _w)/2);
// 左侧距,顶部距
return [leftp,topp];
}
//获取鼠标位置GetPostion
function GetPostion(e) {
var x = getX(e);
var y = getY(e);
}
function getX(e) {
e = e || window.event;
return e.pageX || e.clientX + document.body.scrollLeft - document.body.clientLeft
}
function getY(e) {
e = e|| window.event;
return e.pageY || e.clientY + document.body.scrollTop - document.body.clientTop
}
//判断浏览器类型
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
return "Gecko";
}
} 

将该js包含到主调用的一览jsp文件中。

<script language="javascript" type="text/javascript" src="<s:url value="/js/aligncenter.js"/>"></script> 

3、一览jsp中的调用方法

<a class="view_button" onclick="viewLogistics(event,'<s:property value="#lrVo.logisticNO"/>')" href="####"><s:text name="struts.webui.logistics.label.view"/></a> 

用户点击该行记录的详情链接时调用显示层的方法,同时将该记录的id值传给调用方法。其实,每一个层就是用这条记录的一个id属性值进行区分的。

function viewLogistics(event,logisticNO){
var os = getOs();
var y = getY(event);
if(os=='MSIE'){
y=window.event.y+405;
}
$(".logisticscenter_xq").hide();
$("#"+logisticNO).show();
$("#"+logisticNO).css("top",y+15);
} 

至于方法中event参数的作用,还不是太清楚,这点需要再调查一下。最终效果如下图,随着鼠标下移,层能够动态的移动。

以上所述是小编给大家介绍的JS控制弹出悬浮窗口(一览画面)的实例代码,希望对大家有所帮助,如果大家想了解更多资讯请关注我们网站!

(0)

相关推荐

  • JS百度地图搜索悬浮窗功能

    这个需求的效果类似下面的截图,主要还是利用百度地图中自定义控件的功能,挺简单的.文档地址在这 http://lbsyun.baidu.com/index.php?title=jspopular 效果图: 代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <me

  • js实现悬浮窗效果(支持拖动)

    经常可以看到大部分的官网有右侧悬浮在线客服.今天来写写! 效果图: 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js悬浮窗代码(支持拖动)</title> <meta name="descriptio

  • JavaScript 悬浮窗口实现代码

    效果如图:代码如下: 悬浮窗口示例 window.onscroll = function () { var div = document.getElementById("divSuspended"); div.style.top = document.body.scrollTop; } window.onresize = window.onscroll; function init(){ var df = document.createDocumentFragment(); for(v

  • js点击出现悬浮窗效果不使用JQuery插件

    JQuery有很多这样的插件,但是我们公司不用jquery,没有插件,所以我就试着自己写,我也不知道别人是怎么写的,纯粹是按着自己的想法来的. 直接上代码: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Demo</title> <script type="text/javascript">

  • javascript实现的固定位置悬浮窗口实例

    本文实例讲述了javascript实现的固定位置悬浮窗口.分享给大家供大家参考.具体实现方法如下: <!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"&g

  • js实现可以点击收缩或张开的悬浮窗

    本文实例为大家分享了js实现悬浮窗的具体代码,供大家参考,具体内容如下 说明:点击"+"按钮,悬浮窗收缩/展开 思路 1.在html中定义一个div块,定一个id:一个按钮,点击时用. 2.写一个js,包含收缩以及展开的函数:为按钮添加点击事件. 3.想要让悬浮窗好看点,可设置对应的参数. 步骤 html <div id="area"> <div id="small_menu"> <ul> <li>

  • JS控制弹出悬浮窗口(一览画面)的实例代码

    在web项目开发中经常遇到在一览画面中用户需要查看某一条记录的详细信息.如果用迁移画面的方式处理,速度会比较慢,而且用户体验不是太好.如果采用点击该条记录的详细链接时弹出一个层显示在当前画面的话,处理速度很快,而且用户感觉也比较新颖.下面我以某个对日电子商务网站为实例说明下它的实现方式. 1.jsp页面上弹出层的代码 <!-- 物流详情弹出页面 start --> <s:iterator value="lrVo" var="lrVo" id=&qu

  • js实现弹出框的拖拽效果实例代码详解

    具体代码如下所示: //HTML部分 <div class="wrap"></div> <div class="popUpBox"> <div class="layer-head"><div class="layer-head-text">弹出框</div><div class="layer-close"></div&

  • JS控制弹出新页面窗口位置和大小的方法

    本文实例讲述了JS控制弹出新页面窗口位置和大小的方法.分享给大家供大家参考.具体如下: 相信很多朋友都想做一个弹出用来弹出公告或者重要信息,但是弹出的框口位置和大小又不能太大,所以我们今天使用JS来控制弹出窗口的位置和大小,想弹多大就多大 复制代码 代码如下: <html> <head> <title>指定弹出窗口位置(IE)</title> <script language="javascript"> <!-- fun

  • JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解

    本文实例讲述了JS实现弹出浮动窗口.分享给大家供大家参考.具体如下: 这里介绍的JS弹出浮动窗口,支持鼠标拖动和关闭,点击链接文字后弹出层窗口,也称作是弹出式对话框吧. 关于一些参数说明: bodycontent:要在窗口中显示的内容 title:窗口的标题 removeable:窗口是否能拖动 注意:内容窗体的高度是height-30px,请计算好要显示的内容高度和宽度. 注:在火狐或chrome下效果最佳,IE8下可能有些小问题. 点击此处查看运行效果: http://demo.jb51.n

  • 基于jQuery实现弹出可关闭遮罩提示框实例代码

    jquery CSS3遮罩弹出层动画效果,使用非常简单,就两个标签,里面自定义内容和样式,四种常见效果,懂的朋友还可以修改源代码修改成自己想要的效果 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码. 效果演示 关键代码如下所示: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo

  • jquery弹出遮掩层效果【附实例代码】

    找了个别人写的遮掩层进行改善,感觉效果还可以. 效果图: 代码: <!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> &

  • js之弹出式窗口代码生成器

    弹出式窗口代码生成器 要完成此效果把如下代码加入到区域中 -1){ space=txt.indexOf(wrd); txt=txt.substring(0,space)+smut+txt.substring((space+wrdl),txt.length);} smut=">"; replacewords="> "; space=replacewords.indexOf(" "); wrd=replacewords.substring

  • javaScript实现鼠标在文字上悬浮时弹出悬浮层效果

    在人人,CSDN等一些网站,当鼠标在某个东西上悬浮时,会弹出一个悬浮层,鼠标移开悬浮层消失. 比如说CSDN的通知(应该是进入写新文章的页面后页面上方的那个铃铛),具体是什么实现的呢?上代码: <!doctype html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>TEST</title

  • javascript 控制弹出窗口

    前言:经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项.版权信息   .警告.欢迎光顾之类的话或者作者想要特别提示的信息.其实制作这样的页面效果非常的容易,只要往该页面的HTML里加入几段javascript代码即可实现.下面我就带您剖析它的奥秘.    [1.最基本的弹出窗口代码]                <SCRIPT   LANGUAGE="javascript">        

  • js 弹出菜单/窗口效果

    是不是应该为弹出菜单提供更好的可访问支持?这篇文章将涉及到3种常见的弹窗: window.open 新建的浏览器窗口 <iframe /> 创建的窗口 页面 DOM 创建的伪弹出窗口:如弹出 tips 等 一.当页面无 JS 的时候 通常来说,无 JS 的情况那就按 HTML 的行为来做事.让链接可以链接,就已经解决.比较简单,我们简单带过: 1. window.open 新建的浏览器窗口:尽量让 JS 触发器绑定在 <a /> 上,并把 a 链接到一个新的页面,即可. 复制代码

随机推荐