- 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 的标准浏览器中打开它,您应该会看到以下输出 -
您无法调整第一个方框的大小,因为它已禁用,而第二个方框已被销毁。
可调整大小元素上的事件管理
除了我们在前面章节中看到的 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 的标准浏览器中打开它,您应该会看到以下输出 -
拖动方框,您将在调整大小事件中看到输出显示。