`

可以拖动的弹出窗

阅读更多

如何让弹出窗口可以拖动呢?

如何做出可以拖动的对话框呢?

实际上弹出窗口就是一个div,范例:

<!--  弹出窗口层 -->
	<div id="subPagePanel"  style="display:none;"  >
    <h2 style="color: #fff;font-weight: bold;" class="ui-icon-close" ><label>发帖</label>
        <a title="关闭" onclick="closeSubPagePanel();" style="margin-top: 4px;margin-right: 4px;  " class="close" ></a>
        </h2>
        <div id="subContent" ><!-- <img style="margin:500px;width:50px" src="<%=path%>/static/images/loading/progress.gif"> -->
        

    </div>

</div>
	<!-- / 弹出窗口层 -->

对应的css:

#subPagePanel {
    overflow-y: auto;
    overflow-x: auto;
    width: 640px;
    /* top: 10px !important; */
    left: 10px;
    height: auto/* 320px */;
    position: absolute;
    background-color: rgba(255, 255, 255, 0.9);
    z-index: 99996;
    background-repeat: no-repeat;
    background-position: center;
    display: none;
    border:1px solid #ea4748;
    border-radius: 5px;
}
#subPagePanel h2{
    background-color: #ea4748;
    height: 40px;
    line-height: 40px;
    padding-left: 5px;
    cursor: move;
}

 js 方法:

drag = function ($obj) {
    if (arguments.length == 0) {
        return;
    }
    if ($obj == null || $obj == undefined) {
        return;
    }
    if (typeof  $obj == 'string') {//when $obj is a string
        $obj = $($obj);
    }
    $obj.on({
        mousedown: function (e) {
            e.preventDefault();
            var t = $obj.offset(),
                o = e.pageX - t.left,
                i = e.pageY - t.top;
            $(document).on("mousemove.drag", function (e) {
                $obj.offset({
                    top: e.pageY - i,
                    left: e.pageX - o
                })
            })
        },
        mouseup: function () {
            $(document).unbind("mousemove.drag")
        }
    });
};//drag

  

在页面加载完时就执行drag操作:

$(function(){

    drag("#subPagePanel");

});

看看效果:

 

 

 今天又进行了优化:

drag = function ($obj, hn) {
    if (arguments.length == 0) {
        return;
    }
    if ($obj == null || $obj == undefined) {
        return;
    }
    if (typeof  $obj == 'string') {//when $obj is a string
        $obj = $($obj);
    }
    var $hn = null;
    if (arguments.length > 1) {
        $hn = $obj.find(hn);//div h1,h2...
    } else {
        $hn = $obj.find("h2");
    }
    $hn.on({
        mousedown: function (e) {
            e.preventDefault();
            var t = $obj.offset(),
                o = e.pageX - t.left,
                i = e.pageY - t.top;
            //$obj.css("position", 'fixed');
            $(document).on("mousemove.drag", function (e) {
                $obj.offset({
                    top: e.pageY - i,
                    left: e.pageX - o
                })
            })
        },
        mouseup: function () {
            $(document).unbind("mousemove.drag");
            $obj.css("position", 'fixed');
        }
    });
};//drag

 下面的方法是让对话框显示出来:

var ajaxSubPanel=function(url)
{
	$subContent=$("#subContent");
	showLoadPanel(server_url_prefix+"static/img/loading/progress.gif");
	ajaxHtml(url+"&recordsPerPage=5&random22="+Math.random(),$subContent);//page.js
    $subPagePanel = $('#subPagePanel');
    //$subPagePanel.css("position", 'absolute');//保证下面的语句生效
    $subPagePanel.css("top", (/*com.whuang.hsj.getScroll().top+*/10) + "px");//弹出panel兼容滚动条
    $cboxOverlay.height($(document).height());
    $cboxOverlay.show();
    $subPagePanel.show('normal');
    $subPagePanel.css("position", 'fixed');//保证固定在可视范围内
};

 

 

 

 

 

  • 大小: 51.4 KB
  • 大小: 30.6 KB
  • 大小: 335.5 KB
0
0
分享到:
评论

相关推荐

    可拖拽的bootstrap弹出窗口

    综上所述,这个项目展示了如何将Bootstrap的弹出窗口功能与jQuery UI的拖放功能相结合,创造出一个既美观又实用的可拖拽弹出窗口。这种技术在需要提供动态交互和个性化布局的网页应用中非常有用,例如在线编辑器、...

    jBox弹出窗

    3. **拖动和缩放**:用户可以拖动弹出窗或手动调整其大小。 4. **动画效果**:支持多种打开和关闭的动画效果。 5. **事件和回调函数**:提供丰富的事件和回调函数,方便开发者进行交互逻辑控制。 6. **API**:通过...

    自制弹出窗dialog(支持移动,拖拽缩放大小,自适应)

    在Web开发中,弹出窗...综上所述,这个自制的弹出窗组件结合了移动、拖拽、缩放和自适应布局等多种功能,为Web开发者提供了一个强大且灵活的工具,可以轻松集成到各种Web项目中,提高用户界面的互动性和用户体验。

    JS弹出Div窗口(可拖拽)

    在Web应用中,Div(Division)元素常被用来作为页面布局的容器,而通过JavaScript,我们可以将Div转换为可弹出且可拖动的窗口,以提供更好的用户体验。这个“JS弹出Div窗口(可拖拽)”的示例就是一个解决此类需求的...

    自定义动画弹出窗

    在iOS开发中,自定义动画弹出窗是一种常见的交互设计,可以增强用户的操作体验。本文将深入探讨如何在iOS平台上实现这样一个功能,特别是在Swift或Objective-C编程语言中创建视图(View)从屏幕中间弹出的动画效果。...

    点击弹出小窗口

    在IT行业中,"点击弹出小窗口"是一个常见的交互设计技术,主要应用于网页或桌面应用程序,为用户提供一种轻量级的交互方式。这种技术通常涉及到前端开发中的JavaScript、HTML和CSS,以及可能的库和框架如jQuery或Vue...

    Div可拖动窗口,弹出提示消息窗口

    在这个“Div可拖动窗口,弹出提示消息窗口”的项目中,我们主要关注的是如何利用JavaScript来实现两个关键功能:一是使Div元素具备拖动和大小调整的能力,二是创建一个弹出的提示消息窗口,其效果类似于QQ的屏幕右下...

    js弹出一个超酷的小窗口

    这段代码示例不仅提供了基本的弹出窗口功能,还包含了拖拽交互的实现,这使得最终的弹出窗口更加用户友好和动态。对于希望在其网站上添加此类功能的开发者来说,这是一个很好的起点。然而,实际应用中可能还需要考虑...

    基于Jquery 弹出窗

    这可能涉及到调整弹出窗的位置、大小,添加拖动功能,或者处理浏览器兼容性问题等。例如,我们可以使用CSS定位让弹出窗居中: ```css #dialog { position: fixed; top: 50%; left: 50%; transform: translate(-...

    js仿百度弹出登录窗口并拖拽

    原生js仿照百度的登录,点击弹出登录窗口,同时可以拖拽,并有兼容性问题的解决

    弹出窗layer

    同时,它还提供丰富的回调函数,如打开、关闭、拖动等,使得开发者可以精确地控制弹出窗的生命周期。此外,Layer对移动设备的良好适配,使得在手机和平板等触屏设备上的表现同样出色。 Layer的可扩展性是其另一大...

    QML弹出窗口组件,灯箱效果、动画效果,可拖拽

    QML弹出窗口组件,灯箱效果、动画效果,可拖拽 核心思路:一个mask层,一个最顶层,都用rectangle,禁止事件穿透,动画效果 http://www.cnblogs.com/surfsky/p/3998391.html

    ymPrompt4.0 JS 弹出窗 拖动层

    ymPrompt4.0是一款强大的JavaScript弹出窗口库,专为创建具有拖动功能的层而设计。...通过合理的配置和使用,开发者可以轻松创建出美观、易用且具有拖动功能的弹出层,提高网站的交互性和用户友好性。

    js 弹出窗口 弹出div window 支持遮罩、拖动、嵌入页面、换肤等实用功能

    在本文中,我们将深入探讨如何利用JavaScript实现一个弹出div窗口,包括支持遮罩、拖动、嵌入页面和换肤等功能。 首先,让我们了解“弹出窗口”或“弹出层”的概念。在网页设计中,弹出窗口通常指的是不依赖浏览器...

    jquery实现弹出登录窗口

    "jquery实现弹出登录窗口"这个主题,主要涉及如何利用jQuery创建一个交互式的弹出登录窗口,增强用户体验。下面将详细介绍实现这一功能的关键步骤和相关知识点。 首先,我们需要理解jQuery的基本用法。jQuery通过...

    js可拖拽最大最小化弹出层窗口.zip

    在JavaScript编程领域中,创建可拖拽、最大化、最小化和还原的弹出层窗口是一项常见的需求,尤其在网页交互设计中。这个"js可拖拽最大最小化弹出层窗口.zip"压缩包提供了一个解决方案,它允许用户通过鼠标操作灵活...

    jquery弹出层插件点击弹出层可拖动,弹出层为umeditor

    在IT领域,尤其是在Web开发中,我们经常遇到各种交互式设计和组件的实现,其中“jQuery弹出层插件点击弹出层可拖动,弹出层为umeditor”就是一个典型的例子。这个功能结合了多个技术,包括jQuery、CSS、iframe以及...

    模拟一个弹出可拖动的层窗口源码(效果超酷)

    这样,当需要在其他地方使用可拖动的弹出层时,可以直接调用已封装好的组件,避免重复编写相同逻辑的代码。 7. **响应式设计**:考虑到不同设备的屏幕尺寸差异,弹出层窗口还应具备响应式设计,以便在不同分辨率和...

    弹出DIV可拖动窗口示例(编辑窗口/iframe/等待/确认)

    在JavaScript的帮助下,我们可以使这个弹出窗口具备动态行为,如拖动功能。 1. **拖动功能**:为了让弹出的DIV窗口可拖动,开发者通常会监听鼠标的`mousedown`、`mousemove` 和 `mouseup` 事件。当鼠标按下时,记录...

    弹出层,可拖动,仿discuz2.x 登陆弹出

    本文将详细探讨“弹出层,可拖动,仿discuz2.x 登录弹出”这一主题,以及相关的技术实现和特点。 首先,弹出层的核心特性是它的可拖动性。这意味着用户可以通过鼠标点击并移动来改变弹出层的位置,提供了更高的交互...

Global site tag (gtag.js) - Google Analytics