`
lixielong
  • 浏览: 16039 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

javascript实现模式窗口

阅读更多
这两天在腾讯的修改那一块   觉得挺好看   刚好朋友让我给他做  

开始的时候不知道这是什么东西    师父说  那是模式窗口 

网上找了一些资料   然后自己开始做

已完成:

JavaScript代码如下:

function $(_sId)
{return document.getElementById(_sId);}
  
function moveDiv(event, _sId)
{
     var oObj = $(_sId);   
     oObj.onmousemove = mousemove;
     oObj.onmouseup = mouseup;
     oObj.setCapture ? oObj.setCapture() : function(){};
     oEvent = window.event ? window.event : event;
     var dragData = {x : oEvent.clientX, y : oEvent.clientY};
     var backData = {x : parseInt(oObj.style.top), y : parseInt(oObj.style.left)};
   
     function mousemove()
     {
         var oEvent = window.event ? window.event : event;
         var iLeft = oEvent.clientX - dragData["x"] + parseInt(oObj.style.left);
         var iTop = oEvent.clientY - dragData["y"] + parseInt(oObj.style.top);
         oObj.style.left = iLeft;
         oObj.style.top = iTop;
         dragData = {x: oEvent.clientX, y: oEvent.clientY}; 
     }
   
     function mouseup()
     {
         var oEvent = window.event ? window.event : event;
         oObj.onmousemove = null;
         oObj.onmouseup = null;
         if(oEvent.clientX < 1 || oEvent.clientY < 1)
         {
             oObj.style.left = backData.y;
             oObj.style.top = backData.x;
         }
             oObj.releaseCapture ? oObj.releaseCapture() : function(){};
     }
}

function closeDiv(_sID)
{
    /* var oObj = $(_sID);
     var overlay = $("overlay");   
     if(overlay != null)
     {
         overlay.outerHTML = "";
     }
     oObj.style.display = "none";*/
  var oObj = document.getElementById(_sID);
  var overlay = document.getElementById("overlay");
  if(overlay!=null){
   overlay.outerHTML = "";
  }
     oObj.style.display = "none";
    
}

function showDiv(_sID,event)
{
     var arrySize = getPageSize();
     var oObj = $(_sID);
     //创建一个DIV,改名为 overlay 这个是透明的层   
     var oDiv =document.createElement("div");
     oDiv.id = "overlay";
     document.body.appendChild(oDiv);
     var overlay = $("overlay");
     overlay.style.height = arrySize[1];
     overlay.style.width = arrySize[0];
     //alert(arrySize[1]);   
     if(event == null)
     {
         if(oObj.style.left == "")
         {
             oObj.style.left = arrySize[0] / 2 - 150 ;
         }
        
         if(oObj.style.top == "")
         {
             oObj.style.top =  arrySize[0] / 2;
         }       
     }
     else
     {       
         var iEvent= window.event ? window.event : event;       
         oObj.style.left = arrySize[0] / 2 - 150 ; // iEvent.clientX;
         oObj.style.top = arrySize[1] / 2 - 150 ;// iEvent.clientY;
        
     }
    
     oObj.style.display = "block";
     overlay.style.display = "block";
     overlay.style.zindex = oObj.style.zindex - 1;
}

//取得页面大小
function getPageSize(){
    
     var xScroll, yScroll;
    
     if (window.innerHeight && window.scrollMaxY) {   
         xScroll = document.body.scrollWidth;
         yScroll = window.innerHeight + window.scrollMaxY;
     } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
         xScroll = document.body.scrollWidth;
         yScroll = document.body.scrollHeight;
     } else { // Explorer Macwould also work in Explorer 6 Strict, Mozilla and Safari
         xScroll = document.body.offsetWidth;
         yScroll = document.body.offsetHeight;
     }
    
     var windowWidth, windowHeight;
     if (self.innerHeight) {    // all except Explorer
         windowWidth = self.innerWidth;
         windowHeight = self.innerHeight;
     } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
         windowWidth = document.documentElement.clientWidth;
         windowHeight = document.documentElement.clientHeight;
     } else if (document.body) { // other Explorers
         windowWidth = document.body.clientWidth;
         windowHeight = document.body.clientHeight;
     }   
    
     // for small pages with total height less then height of the viewport
     if(yScroll < windowHeight){
         pageHeight = windowHeight;
     } else {
         pageHeight = yScroll;
     }

     // for small pages with total width less then width of the viewport
     if(xScroll < windowWidth){   
         pageWidth = windowWidth;
     } else {
         pageWidth = xScroll;
     }


    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
     return arrayPageSize;
}



CSS样式如下:

@CHARSET "UTF-8";
img{
    border:0px;
}

#overlay{
    position: absolute;
    top: 0;
    left: 0;
    z-index: 99;
    width: 100%;
    height: 500px;
    background-color: #000;
    filter:alpha(opacity=70);
    -moz-opacity: 0.6;
    opacity: 0.6;
}

.floatDiv{
    padding:0 0 0 0;   
    position:absolute;
    width:300px;
    margin:0 0 0 0;
    z-index:100;
    border:1px solid #DADADA;
    background:#FFF; padding:1px;
}

.floatDiv .divTitle{
    background:#E0E0E0 url('../images/dragForm/title_bg.gif');
    background-position:top left;
    background-repeat:repeat-x;
    height:25px;
    line-height:25px;
    padding:0px 4px;
    cursor:default;
}

.floatDiv .divContent{
    padding:3px;
    min-height:100px;
    height:auto; cursor:default;
}

.floatDiv .divFoot{
    background:#F0F0F0;
    text-align:right;
    padding:4px;
    background:#E0E0E0 url('../images/dragForm/bottom_bg.gif');
    background-position:top left;
    background-repeat:repeat-x;
}

.floatDiv input.divButton{
    background:#E0E0E0 url('../images/dragForm/button_bg.gif');
    background-position:top left;
    background-repeat:repeat-x;
    border:1px solid #D1D3D2;
    height:21px;
    font-size:12px;
    padding:2px 5px;
    color:#626264;
}


jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题 1</title>
<link href="./Css.css" rel="stylesheet" media="all" />
<script type="text/javascript" src="./javascript.js"></script>
</head>

<body>

<div id="main">
    <a href="javascript:showDiv('floatDiv');">show</a>
<input type="button" onclick="showDiv('floatDiv',event);" value="显示在这里" />

</div>
<div id="floatDiv" class="floatDiv" style="display:none;">
    <div class="divTitle" onmousedown="moveDiv(event,'floatDiv');">
        <div style="float:left; width:250px;">提示窗口</div>
        <div style="float:right;text-align:right; height:25px;" >
            <a href="javascript:;" onclick="closeDiv('floatdiv');"><img src="images/dragform/ico_close.gif" onmouseout="this.src='images/dragform/ico_close.gif';" onmousemove="this.src='images/dragform/ico_close1.gif';" align="absmiddle" alt="关闭" /></a>
        </div>       
    </div>
    <div class="divContent" >
        <p>根据系统设置,修改密码前必须通过安全验证  
       
    </p>
  
    <form action="">
     <table>
      <tr>
       <td>你父亲的名字是什么?</td>
       <td><input type="text" name="answer"/></td>
      </tr>
     </table>
     <div class="divFoot">
        <input type="submit" class="divButton" value="确 定" /><input type="button" class="divButton" onclick="closeDiv('floatdiv')" value="取 消" />
    </div>
    </form>
    </div>
   
</div>
</body>

</html>

《测试已通过,在火狐里面效果不是很好,在IE8中,可以很好的看到效果》
分享到:
评论

相关推荐

    html和javascript技术实现模式窗口传参数示例

    以上就是使用HTML和JavaScript实现模式窗口以及蒙板对话框的基本方法,通过这种方式,你可以创建出具有交互性和实用性的网页功能。在实际项目中,你可能还需要考虑更多细节,如键盘导航、触屏设备的支持以及对不同...

    JavascriptModel

    以上就是使用JavaScript实现模式窗口涉及的主要知识点,这些技能是现代Web开发中的基础,理解并熟练运用它们能帮助你构建更高效、更健壮的用户界面。在实际编程中,你可能还需要考虑兼容性、性能优化、错误处理等...

    模式窗口操作父窗口

    在Web开发中,使用JavaScript可以轻松地实现模式窗口与父窗口之间的通信。通过`window.opener`对象,子窗口(即模式窗口)可以访问并操作打开它的父窗口(即主窗口)。在提供的代码片段中,`Page.ClientScript....

    一个JQuery插件 - Javascript可拖动的模式窗口

    该插件利用了jQuery的这些特性来实现模式窗口的功能。 ### 模式窗口(Modal Window) 模式窗口通常用于弹出需要用户注意或者需要用户交互的情况,如登录对话框、警告提示或表单提交。这种窗口会在页面的其余部分上...

    div模式窗口-div模式窗口

    2. `div`模式窗口的实现: `div`模式窗口是指利用`div`元素创建的可交互或可弹出的窗口效果。这通常通过JavaScript或者jQuery等库来实现动态效果,如点击按钮后弹出一个包含特定内容的`div`窗口。这个窗口可以是...

    Jquery实现模态窗口效果

    在网页设计中,模态窗口(Modal Window)是一种常见的用户交互设计模式,它可以在不离开当前页面的情况下显示新的内容或进行交互操作。JQuery,一个轻量级、高性能的JavaScript库,提供了简单易用的API来实现这种...

    全屏窗口javascript全屏

    通过以上讲解,你应该能够理解如何使用JavaScript实现全屏窗口功能,并解决可能出现的问题。在实际项目中,可以结合HTML和CSS来优化全屏效果,提供更加沉浸式的用户体验。如果你的项目中包含名为“全屏窗口.html”的...

    jquery 模式窗口

    本篇文章将详细讲解如何利用jQuery实现一个美观的“模式窗口”(Modal Window)并结合选项卡功能,为用户提供优秀的体验。 一、jQuery模式窗口(Modal Window) 模式窗口是一种在用户进行特定操作时弹出的覆盖整个...

    javascript自定义浏览器窗口

    以上就是使用JavaScript实现自定义浏览器窗口功能的主要技术点。通过结合这些技术,开发者可以创建具有高度交互性和个性化体验的前端应用。当然,实际应用中还需要考虑浏览器兼容性、用户体验优化等问题,这需要对...

    JavaScript实现提交模式窗口后刷新父窗口数据的方法

    本文实例讲述了JavaScript实现提交模式窗口后刷新父窗口数据的方法。分享给大家供大家参考,具体如下: 有些时间,按需求设计,一个窗口中,点击按扭,弹出模式窗口,在模式窗口中,添加完数据后(提交),关闭模式...

    jQuery实现模式窗口登录

    ### jQuery实现模式窗口登录 #### 知识点概述 本文将详细介绍如何利用jQuery库来创建一个弹出式登录对话框,这种登录对话框通常被称为模态窗口。此方法适用于Internet Explorer(IE)和Firefox浏览器,并且可以很...

    js弹出层暂停实现模式窗口效果(修改后的)

    综上所述,"js弹出层暂停实现模式窗口效果"涉及到HTML布局、CSS样式、JavaScript交互、动画效果、可访问性和响应式设计等多个方面。通过合理地组合这些技术,可以创建出功能完备且用户体验良好的弹出层效果。在实际...

    JavaScript实现弹出子窗口并传值给父窗口

    本文将深入讲解如何利用JavaScript实现弹出子窗口,并将子窗口中的数据传递回父窗口。 首先,我们来看父窗口的代码。在给定的`First.html`文件中,我们定义了一个名为`ShowDialog`的JavaScript函数,用于打开一个...

    JavaScript窗口小技巧.pdf

    这篇文章主要讨论了使用JavaScript实现窗口小技巧,避免设计出难用的网站。文章中提供了几种技术来善用JavaScript的窗口功能,包括如何创建无边框窗口、画布模式窗口等。 首先,文章提到使用多窗口(Multi-window)...

    jquery 弹出模式窗口

    jQuery插件提供了一种便捷的方式来实现这种弹出模式窗口,使得用户体验更加流畅,且不离开当前页面。本篇文章将深入探讨jQuery中的弹出模式窗口,特别是名为jQuery-Impromptu的插件。 ### 1. jQuery基础知识 ...

    用div实现的模式窗口

    本示例是用div元素实现的模式窗口,结合了HTML、CSS和JavaScript(包括jQuery库)技术,适用于.NET开发环境。 首先,`text.html`文件展示了模式窗口的实际效果。在HTML中,我们通常会创建一个隐藏的div作为模态窗口...

    JavaScript弹出窗口方法汇总_.docx

    JavaScript 弹出窗口方法是 Web 开发中常用的技术,用于实现弹出窗口、刷新网页、模式窗口等功能。本文将对 JavaScript 弹出窗口方法进行总结和分析,帮助读者更好地理解和应用这些方法。 一、无提示刷新网页 在 ...

    一个小型的js模式窗口样例

    首先,模式窗口的实现可以基于HTML、CSS和JavaScript。HTML用于构建对话框的基本结构,CSS用于样式设置,使其看起来像一个弹出窗口,而JavaScript则负责添加交互性和动态效果,如显示、隐藏以及处理用户输入。 在...

    Model--模式窗口的使用

    在JavaScript(js)中,模式窗口的实现有很多种方法,包括使用内置的`window.alert()`、`window.confirm()`和`window.prompt()`函数,但这些功能有限,无法满足复杂的UI需求。因此,开发者通常会使用第三方库,如...

Global site tag (gtag.js) - Google Analytics