今天在做一个功能的时候使用到了Jquery UI中的dialog组件,应为是一个很简单的组件,有很多功能都没有提供,比如说直接获取到dialog的位置,直接修改dialog的位置都是不行的,并且但可拖动的位置看不见的时候,这个时候就是坑了,关闭不了,也拖动不了,这个时候只能刷新页面来重新初始化界面了。
我今天解决的就是这个问题:解决这种问题有两种方式(个人认为)
1、修改属性让可拖动局域可见,进行拖动
2、不让出现可拖动区域不可见的情况。
针对第一种情况,我没有想到合适的办法。下面给出第二种情况的解决办法,原理就是判断当前dialog的位置,如果拖动位置的可能出现不可见的情况,这个时候修改dialog的位置,dialog有个方法是监听dialog拖动的,我的实现方式就是放在这个方法内的,代码如下:
/** * 添加拖拽监听 当UI的位置跑出屏幕外的时候 进行更新 * @param {Object} event * @param {Object} ui */ drag : function(event,ui) { var posX = ui.position.left; var posY = ui.position.top; if (posX < 5) { posX = 5; } if (posY < 5) { posY = 5; } ui.position.left = posX; ui.position.top = posY; }
这是一段很简单的代码,没有什么可以说的地方,主要是使用ui的一些属性。
时间: 2024-12-14 18:47:36