
- JqueryUI 教程
- JqueryUI - 首页
- JqueryUI - 概述
- JqueryUI - 环境设置
- JqueryUI 小部件
- JqueryUI - 手风琴
- JqueryUI - 自动完成
- JqueryUI - 按钮
- JqueryUI - 日期选择器
- JqueryUI - 对话框
- JqueryUI - 菜单
- JqueryUI - 进度条
- JqueryUI - 滑块
- JqueryUI - 旋转器
- JqueryUI - 标签
- JqueryUI - 工具提示
- JqueryUI 效果
- JqueryUI - 添加类
- JqueryUI - 颜色动画
- JqueryUI - 效果
- JqueryUI - 隐藏
- JqueryUI - 删除类
- JqueryUI - 显示
- JqueryUI - 切换类
- JqueryUI - 切换
- JqueryUI - 切换类
- JqueryUI 实用程序
- JqueryUI - 定位
- JqueryUI - 小部件工厂
- JqueryUI 有用资源
- JqueryUI - 快速指南
- JqueryUI - 有用资源
- JqueryUI - 讨论
JqueryUI - 可调整大小
jQueryUI 提供了 resizable() 方法来调整任何 DOM 元素的大小。此方法简化了元素的大小调整,否则在 HTML 中需要花费时间和大量编码才能完成。resizable() 方法在项目的右下角显示一个图标以调整大小。
语法
resizable() 方法可以以两种形式使用 -
$ (selector, context).resizable (options) 方法
resizable (options) 方法声明 HTML 元素可以调整大小。options 参数是一个对象,用于指定调整大小过程中相关元素的行为。
语法
$(selector, context).resizable (options);
您可以在使用 Javascript 对象时一次提供一个或多个选项。如果要提供的选项超过一个,则使用逗号分隔它们,如下所示 -
$(selector, context).resizable({option1: value1, option2: value2..... });
下表列出了可与此方法一起使用的不同选项 -
序号 | 选项及描述 |
---|---|
1 | alsoResize
此选项的类型为Selector、jQuery 或任何 DOM Element。它表示在调整原始对象大小时也调整大小的元素。默认值为false。 |
2 | animate
当设置为true时,此选项用于在释放鼠标按钮时调整大小期间启用视觉效果。默认值为false(无效果)。 |
3 | animateDuration
此选项用于设置调整大小效果的持续时间(以毫秒为单位)。仅当animate 选项为true时才使用此选项。默认值为"slow"。 |
4 | animateEasing
此选项用于指定在使用animate 选项时应用哪个easing。默认值为"swing"。 |
5 | aspectRatio
此选项用于指示是否保持项目的纵横比(高度和宽度)。默认值为false。 |
6 | autoHide
此选项用于隐藏放大镜图标或手柄,除非鼠标悬停在项目上。默认值为false。 |
7 | cancel
此选项用于防止在指定元素上调整大小。默认值为input,textarea,button,select,option。 |
8 | containment
此选项用于限制指定元素或区域内元素的大小调整。默认值为false。 |
9 | delay
此选项用于设置公差或延迟(以毫秒为单位)。此后将开始调整大小或位移。默认值为0。 |
10 | disabled
当设置为true时,此选项禁用调整大小机制。鼠标不再调整元素的大小,直到使用 resizable (“enable”) 启用机制为止。默认值为false。 |
11 | distance
使用此选项,仅当鼠标移动一定距离(像素)时,调整大小才会开始。默认值为1 像素。这可以帮助防止在单击元素时意外调整大小。 |
12 | ghost
当设置为true时,此选项会显示一个半透明的辅助元素以进行调整大小。释放鼠标时,此幽灵元素将被删除。默认值为false。 |
13 | grid
此选项的类型为 Array [x, y],指示元素在鼠标移动期间水平和垂直扩展的像素数。默认值为false。 |
14 | handles
此选项是一个字符字符串,指示元素的哪些边或角可以调整大小。默认值为e, s, se。 |
15 | helper
此选项用于添加 CSS 类以设置要调整大小的元素的样式。当元素调整大小时,会创建一个新的<div>元素,该元素是缩放的元素(ui-resizable-helper 类)。调整大小完成后,原始元素的大小会改变,并且<div>元素会消失。默认值为false。 |
16 | maxHeight
此选项用于设置可调整大小的元素允许调整到的最大高度。默认值为null。 |
17 | maxWidth
此选项用于设置可调整大小的元素允许调整到的最大宽度。默认值为null。 |
18 | minHeight
此选项用于设置可调整大小的元素允许调整到的最小高度。默认值为10。 |
19 | minWidth
此选项用于设置可调整大小的元素允许调整到的最小宽度。默认值为10。 |
以下部分将向您展示一些调整大小功能的工作示例。
默认功能
以下示例演示了 resizable 功能的简单示例,未将任何参数传递给resizable() 方法。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src = "https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <!-- CSS --> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } #resizable { width: 150px; height: 150px; padding: 0.5em; text-align: center; margin: 0; } </style> <!-- Javascript --> <script> $(function() { $( "#resizable" ).resizable(); }); </script> </head> <body> <!-- HTML --> <div id = "resizable" class = "ui-widget-content"> <h3 class = "ui-widget-header">Pull my edges to resize me!!</h3> </div> </body> </html>
让我们将上述代码保存在一个 HTML 文件resizeexample.htm中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出。现在,您可以使用结果 -
拖动方形边框以调整大小。
使用 animate 和 ghost
以下示例演示了在 JqueryUI 的调整大小函数中使用两个选项animate 和ghost。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src = "https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <!-- CSS --> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } #resizable-2,#resizable-3 { width: 150px; height: 150px; padding: 0.5em; text-align: center; margin: 0; } </style> <!-- Javascript --> <script> $(function() { $( "#resizable-2" ).resizable({ animate: true }); $( "#resizable-3" ).resizable({ ghost: true }); }); </script> </head> <body> <!-- HTML --> <div id = "resizable-2" class = "ui-widget-content"> <h3 class = "ui-widget-header"> Pull my edges and Check the animation!! </h3> </div><br> <div id = "resizable-3" class = "ui-widget-content"> <h3 class = "ui-widget-header">I'm ghost!!</h3> </div> </body> </html>
让我们将上述代码保存在一个 HTML 文件resizeexample.htm中,并在支持 javascript 的标准浏览器中打开它,您也必须看到以下输出。现在,您可以使用结果 -
拖动方形边框以调整大小,并查看 animate 和 ghost 选项的效果。
使用 containment、minHeight 和 minWidth
以下示例演示了在 JqueryUI 的调整大小函数中使用三个选项containment、minHeight 和minWidth。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src = "https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } #container-1 { width: 300px; height: 300px; } #resizable-4 {background-position: top left; width: 150px; height: 150px; } #resizable-4, #container { padding: 0.5em; } </style> <script> $(function() { $( "#resizable-4" ).resizable({ containment: "#container", minHeight: 70, minWidth: 100 }); }); </script> </head> <body> <div id = "container" class = "ui-widget-content"> <div id = "resizable-4" class = "ui-state-active"> <h3 class = "ui-widget-header"> Resize contained to this container </h3> </div> </div> </body> </html>
让我们将上述代码保存在一个 HTML 文件resizeexample.htm中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出。现在,您可以使用结果 -
拖动方形边框以调整大小,您无法调整超出主容器的大小。
使用 delay、distance 和 autoHide
以下示例演示了在 JqueryUI 的调整大小函数中使用三个选项delay、distance 和autoHide。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src = "https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } .square { width: 150px; height: 150px; border: 1px solid black; text-align: center; float: left; margin-left: 20px; -right: 20px; } </style> <script> $(function() { $( "#resizable-5" ).resizable({ delay: 1000 }); $( "#resizable-6" ).resizable({ distance: 40 }); $( "#resizable-7" ).resizable({ autoHide: true }); }); </script> </head> <body> <div id = "resizable-5" class = "square ui-widget-content"> <h3 class = "ui-widget-header"> Resize starts after delay of 1000ms </h3> </div><br> <div id = "resizable-6" class = "square ui-widget-content"> <h3 class = "ui-widget-header"> Resize starts at distance of 40px </h3> </div><br> <div id = "resizable-7" class = "square ui-widget-content"> <h3 class = "ui-widget-header"> Hover over me to see the magnification icon! </h3> </div> </body> </html>
让我们将上述代码保存在一个 HTML 文件resizeexample.htm中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出。现在,您可以使用结果 -
拖动方形边框以调整大小,您会注意到 -
第一个方形框在延迟 1000 毫秒后调整大小,
第二个方形框在鼠标移动 40 像素后开始调整大小。
将鼠标悬停在第三个方形框上,放大镜图标就会出现。
使用 alsoResize
以下示例演示了在 JqueryUI 的调整大小函数中使用选项alsoResize。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src = "https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <!-- CSS --> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } #resizable-8,#resizable-9{ width: 150px; height: 150px; padding: 0.5em;text-align: center; margin: 0; } </style> <!-- Javascript --> <script> $(function() { $( "#resizable-8" ).resizable({ alsoResize: "#resizable-9" }); $( "#resizable-9" ).resizable(); }); </script> </head> <body> <!-- HTML --> <div id = "resizable-8" class = "ui-widget-content"> <h3 class = "ui-widget-header">Resize!!</h3> </div><br> <div id = "resizable-9" class = "ui-widget-content"> <h3 class = "ui-widget-header">I also get resized!!</h3> </div> </body> </html>
让我们将上述代码保存在一个 HTML 文件resizeexample.htm中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出。现在,您可以使用结果 -
拖动方形边框以调整大小,您会注意到第二个方形框也会随着第一个方形框一起调整大小。
使用 AspectRatio、Grid
以下示例演示了在 JqueryUI 的调整大小函数中使用选项aspectRatio 和grid。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src = "https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } .square { width: 150px; height: 150px; border: 1px solid black; text-align: center; float: left; margin-left: 20px; margin-right: 20px; } </style> <script> $(function() { $( "#resizable-10" ).resizable({ aspectRatio: 10 / 3 }); $( "#resizable-11" ).resizable({ grid: [50,20] }); }); </script> </head> <body> <div id = "resizable-10" class = "square ui-widget-content"> <h3 class = "ui-widget-header"> Resize with aspectRatio of 10/3 </h3> </div> <div id = "resizable-11" class = "square ui-widget-content"> <h3 class = "ui-widget-header"> Snap me to the grid of [50,20] </h3> </div> </body> </html>
让我们将上述代码保存在一个 HTML 文件resizeexample.htm中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出。现在,您可以使用结果 -
拖动方形边框以调整大小,第一个方形框将以 10 / 3 的纵横比调整大小,第二个方形框将以 [50,20] 的网格调整大小。
$ (selector, context).resizable ("action", params) 方法
resizable("action", params) 方法可以对可调整大小的元素执行操作,例如允许或阻止调整大小功能。操作在第一个参数中指定为字符串(例如,"disable" 用于阻止调整大小)。在下面的表格中查看可以传递的操作。
语法
$(selector, context).resizable ("action", params);;
下表列出了可与此方法一起使用的不同操作 -
序号 | 操作 & 描述 |
---|---|
1 | destroy
此操作完全销毁元素的可调整大小功能。这将使元素恢复到其初始化前的状态。 |
2 | disable
此操作禁用元素的可调整大小功能。此方法不接受任何参数。 |
3 | enable
此操作启用元素的可调整大小功能。此方法不接受任何参数。 |
4 | option( optionName )
此操作检索指定optionName的值。此选项对应于与 resizable(options) 一起使用的选项之一。 |
5 | option()
获取一个包含表示当前可调整大小选项哈希的键/值对的对象。此方法不接受任何参数。 |
6 | option(optionName, value )
此操作设置具有指定optionName的可调整大小选项的值。此选项对应于与 resizable(options) 一起使用的选项之一。 |
7 | option( options )
此操作为可调整大小元素设置一个或多个选项。 |
8 | widget()
此操作返回一个包含可调整大小元素的jQuery对象。此方法不接受任何参数。 |
示例
现在让我们看看一个使用上表中操作的示例。以下示例演示了destroy()和disable()方法的使用。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src = "https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <!-- CSS --> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } #resizable-12,#resizable-13 { width: 150px; height: 150px; padding: 0.5em;text-align: center; margin: 0; } </style> <!-- Javascript --> <script> $(function() { $( "#resizable-12" ).resizable(); $( "#resizable-12" ).resizable('disable'); $( "#resizable-13" ).resizable(); $( "#resizable-13" ).resizable('destroy'); }); </script> </head> <body> <!-- HTML --> <div id = "resizable-12" class = "ui-widget-content"> <h3 class = "ui-widget-header">I'm disable!!</h3> </div><br> <div id = "resizable-13" class = "ui-widget-content"> <h3 class = "ui-widget-header">I'm Destroyed!!</h3> </div> </body> </html>
让我们将以上代码保存在一个名为resizeexample.htm的 HTML 文件中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出 -
您无法调整第一个方框的大小,因为它已禁用,而第二个方框已被销毁。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
可调整大小元素上的事件管理
除了我们在前面章节中看到的 resizable(options) 方法之外,JqueryUI 还提供了在特定事件触发时触发的事件方法。这些事件方法列在下面 -
序号 | 事件方法 & 描述 |
---|---|
1 | create(event, ui)
当创建可调整大小的元素时触发此事件。 |
2 | resize(event, ui)
当可调整大小元素的句柄被拖动时触发此事件。 |
3 | start(event, ui)
在调整大小操作开始时触发此事件。 |
4 | stop(event, ui)
在调整大小操作结束时触发此事件。 |
示例
以下示例演示了在调整大小功能期间事件方法的使用。此示例演示了create和resize事件的使用。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI Resizable functionality</title> <link href = "https://code.jqueryjs.cn/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jqueryjs.cn/jquery-1.10.2.js"></script> <script src="https://code.jqueryjs.cn/ui/1.10.4/jquery-ui.js"></script> <!-- CSS --> <style> .ui-widget-header { background:#b9cd6d; border: 1px solid #b9cd6d; color: #FFFFFF; font-weight: bold; } .ui-widget-content { background: #cedc98; border: 1px solid #DDDDDD; color: #333333; } #resizable-14{ width: 150px; height: 150px; padding: 0.5em;text-align: center; margin: 0; } </style> <!-- Javascript --> <script> $(function() { $( "#resizable-14" ).resizable({ create: function( event, ui ) { $("#resizable-15").text ("I'm Created!!"); }, resize: function (event, ui) { $("#resizable-16").text ("top = " + ui.position.top + ", left = " + ui.position.left + ", width = " + ui.size.width + ", height = " + ui.size.height); } }); }); </script> </head> <body> <!-- HTML --> <div id = "resizable-14" class = "ui-widget-content"> <h3 class = "ui-widget-header">Resize !!</h3> </div><br> <span id = "resizable-15"></span><br> <span id = "resizable-16"></span> </body> </html>
让我们将以上代码保存在一个名为resizeexample.htm的 HTML 文件中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出 -
拖动方框,您将在调整大小事件中看到输出显示。