文档章节

easyui dialog自定义可拖曳

MissGu
 MissGu
发布于 2015/04/12 21:35
字数 579
阅读 2812
收藏 0

     看到标题的朋友一定会觉得本人很奇怪,easyui的dialog不是自带可拖曳的属性吗。是的,dialog继承了Window的一个属性draggable,设为true之后,窗口便可以拖曳。事实是,一,easyui的draggable属性是绑定在窗口的title属性上的,能使用draggable属性的前提是必须保留dialog的标题栏,但不得不说,我实在对dialog的标题样式不太满意,寻找半天也没找到dialog标题样式修改的地方,如果朋友你看知道的话,可以方便回复告诉我,谢谢;二,easyui的可拖曳属性可以随意拖动窗口到任意地方,甚至超出网页边界。我又是个强迫症比较厉害的人,so。。。

     好了,进入正题。怎么样让我们的不需要easyui内置标题的dialog窗口在一定范围中拖曳呢。

 //dialog拖动
    $(".move").add(".window-shadow").mousedown(function(e)//e鼠标事件
    {

        var offset = $(this).offset();//DIV在页面的位置
        var x = e.pageX - offset.left;//获得鼠标指针离DIV元素左边界的距离
        var y = e.pageY - offset.top;//获得鼠标指针离DIV元素上边界的距离
        $(document).bind("mousemove",function(ev)//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
        {
            $(".window").add(".window-shadow").stop();//加上这个之后

            var _x = ev.pageX - x;//获得X轴方向移动的值
            var _y = ev.pageY - y;//获得Y轴方向移动的值

            //在该DIV的范围内拖动
            var pElement = $("body"),
                pWidth = pElement.width(),
                pHeight = pElement.height();
            //移动的div,以window为例
            var element = $(".window"),
                eWidth = element.width(),
                eHeight = element.height();
            if(_x+eWidth>pWidth){
                _x=pWidth-eWidth;
            }
            if(_x<0){
                _x=0;
            }
            if(_y<0){
                _y=0;
            }
            if(_y+eHeight>pHeight){
                _y=pHeight-eHeight;
            }
            $(".window").add(".window-shadow").animate({left:_x+"px",top:_y+"px"},10);
        });
    });

    $(document).mouseup(function()
    {
        //  $(".window").add(".window-shadow").css("cursor","default");
        $(this).unbind("mousemove");
    })
})

className="move"和“window-shadow”正是鼠标划过显示鼠标样式显示为移动的区域

附上css :

.move{
    width:650px;
    height: 50px;
    cursor:move;
}

这样鼠标划过move所在区域,就会显示移动样式,鼠标点击拖动就可以在一定范围内拖动整个dialog。嗯~~也许大家没我这么强迫症,但是作为前端开发人员,适时的强迫症也是需要的吧。

© 著作权归作者所有

共有 人打赏支持
MissGu
粉丝 3
博文 5
码字总数 2899
作品 0
北碚
私信 提问
jQuery-EasyUI 1.2.3 发布

Current Version: 1.2.3 ChangeLog: Bug window: Cannot resize the window with iframe content. fixed. tree: The node will be removed when dragging to its child. fixed. combogrid: T......

ejzhang
2011/04/26
6.1K
3
easyui的datagrid中对记录修改,修改后如何显示在前台??

获取修改的记录,修改后按确定后触发editUser(): function editUser(){ var row = $('#dg').datagrid('getSelected'); if (row){ $('#bian').dialog('open').dialog('setTitle','编辑账户'......

你我共享世界美好
2014/05/12
2.6K
2
jQuery easyui官方文档翻译 - 基础总览

jQuery easyui官方文档翻译web版:http://easydoc.cloudfoundry.com/doc/easyui/1.2.5/ Documentation Each component of easyui has properties, methods and events. Users can extend the......

noday
2012/03/26
0
0
easyui ajax php

easyui使用ajax 提交数据后,后台获取不到form中的值 First Name: Last Name: Phone: Email: ajax 代码 $('#fm').form('submit',{ url: url, onSubmit: function(){ return $(this).form('va......

peihongda
2013/05/24
599
2
python 写的selenium脚本不能循环,循环时会报 [WinError 10053] 你的主机中的软件中止了一个已建立的连接。错误,求大佬解答下

用python写了一段自动化脚本,在循环的时候报ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。错误,第一次执行没有问题,就是不能循环,求个大神解答下...

自学测试的小白
07/05
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

深入解析JSON与XML优缺点对比

本文从各个方面向大家对比展示了json和xml的优缺点,十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 #1. 定义介绍 1.1 XML定义 扩展标...

前端攻城老湿
14分钟前
0
0
Vue 单页应用(spa)前端路由实现原理

一文搞懂单页应用原理Vue项目History模式路由机制 源码分析VueVueRouter Vue 单页应用(spa)前端路由实现原理 写在前面:通常 SPA 中前端路由有2种实现方式: window.history location.hash...

前端攻城小牛
15分钟前
0
0
Vuex的初探与实战小结

1.概述 每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。 Vuex 和单纯的全局对象有以下两点不同: 1.Vuex 的状态存储是响...

peakedness丶
17分钟前
0
0
CSS 背景图片全屏显示

<style> html { background: url(./static/login/xia.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; ......

SummerGao
21分钟前
0
0
Supplier函数式接口

Supplier接口的不传入参数,返回一个值。真是一个无私奉献的接口,还没有default方法。 下面就想用一个接口试试,其实我本来用的是IntSupplier,但是发现在使用方法引用的时候,不好把Math....

woshixin
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部