解决方法
不确定您是否希望限制特定轴的调整大小操作,或者想知道实际调整大小的方向.
如果你想要前任,Rayell的答案可以工作.我会讨论后者.
如果你设置了这样的可调整大小:
- var r = $("#resizable");
- r.resizable();
假设您想知道在用户释放鼠标按钮之后,调整大小发生的方向.我们将一个函数绑定到resize stop事件:
- r.bind('resizestop',function(event,ui) {
- // determine resize deltas
- var delta_x = ui.size.width - ui.originalSize.width;
- var delta_y = ui.size.height - ui.originalSize.height;
- }
使用传递的ui对象,我们可以通过从旧大小减去新的大小来确定大小的相对变化.之后,您可以使用delta_x和delta_y,但是您希望.我们来构建一个与其中一个句柄对应的字符串.
- r.bind('resizestop',ui) {
- // determine resize deltas
- var delta_x = ui.size.width - ui.originalSize.width;
- var delta_y = ui.size.height - ui.originalSize.height;
- // build direction string
- var dir = '';
- if (delta_y > 0) {
- dir += 's';
- } else if (delta_y < 0) {
- dir += 'n';
- }
- if (delta_x > 0) {
- dir += 'e';
- } else if (delta_x < 0) {
- dir += 'w';
- }
- // do something with this string
- alert(dir);
- });
请注意,如果您在元素的两边都有句柄,那么它不一定会返回哪个句柄实际用于执行调整大小,只是它的净方向.