源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jQuery之尺寸调整组件的深入解析

  • 时间:2022-05-19 15:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jQuery之尺寸调整组件的深入解析
[b]1:尺寸调整组件(Resizable)组件可以使选定的DOM元素变成可调整尺寸的对象[/b],即可以通过拖动调整手柄来改变其尺寸大小。 $(".selector").resizeable(options); [b]简单实例: [/b]
[url=CSS/base/jquery.ui.all.css]<script type="text/javascript" language="javascript"> $(document).ready(function(){   $("#car").resizable(); }); </script> </head> <body> <img src="images/happy.gif" id="car" /> </body> </html>
[b]效果图: [/b][img]http://files.jb51.net/file_images/article/201306/2013061916454932.png[/img] 其实,在调用resizable()方法之后,将会在目标对象的右边框、下边框和右下角分别添加div元素,并对div元素依次添加ui-resizable-e, ui-resizable-s, ui-resizable-se类,从而形成拖动手柄 [b]2:延迟调整 [/b]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>resizable组件</title> <script language="javascript" src="js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="js/jquery.ui.core.js"></script> <script type="text/javascript" src="js/jquery.ui.widget.js"></script> <script type="text/javascript" src="js/jquery.ui.mouse.js"></script> <script type="text/javascript" src="js/jquery.ui.resizable.js"></script> <style type="text/css"> body {  font-size:14px; } #wrap {  margin: 10px 20px 10px auto;  padding: 10px;  width: 350px;  height:150px;  background: #fff;  border: 5px solid #000;  float: right;  overflow: auto; } .message_box {  width:220px;  height:200px;  filter:dropshadow(color=#666666, offx=3, offy=3, positive=2);  float:left;  margin-right:10px; } #mask {  position:absolute;  top:0;  left:0; width:expression(body.clientWidth); height:expression(body.clientHeight);  background:#666;  filter:ALPHA(opacity=60);  z-index:1;  visibility:hidden } .message {  border:#036 solid;  border-width:1 1 3 1;  width:95%;  height:95%;  color:#036;  font-size:12px;  line-height:150% } .header {  background:#036;  height:22px;  font-family:Verdana, Arial, Helvetica, sans-serif;  font-size:12px;  padding:3px 5px 0px 10px;  color:#fff;  cursor:move; } ul {  margin-right:25px; } .header div {  display:inline;  width:150px; } .header span {  float:right;  display:inline;  cursor:hand; } fieldset {  margin-bottom:5px; } .area {  width:120px;  border:2px solid #D6D6D6;  margin:10px;  background:#FFF;  height: 80px;  padding: 5px; } </style> <link href="CSS/base/jquery.ui.all.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" language="javascript"> $(document).ready(function(){  $("#message_box1").resizable({    delay: 500,      //delay属性设置时间延迟    distance: 20,    //distance属性设置距离延迟    minWidth:200,    minHeight:200,    alsoResize:".area"   }); }); </script> </head> <body> <div id="message_box1" class="message_box" >   <div class="message" >     <div class="header">       <div>延迟调整</div>       <span>×</span></div>     <div class="area">拖动最外边框查看效果,参数如下<br/>     时间延迟:500<br/>      距离延迟:20</div>   </div> </div> </body> </html>
[img]http://files.jb51.net/file_images/article/201306/2013061916454933.png[/img] [b]3:动态调整效果 需要借助尺寸调整组件的一下属性来实现: [/b]*为helper属性设置一个CSS样式类,该样式类将在调整过程中显示元素大小的轮廓,操作结束后才调整原始元素的大小 *设置ghost属性为true,在调整过程中显示一个半透明的辅助元素 *将animate属性设置为true,为元素的调整过程添加动画效果 *为animateDuration属性指定一个值,设置动画过程持续的时间
[url=CSS/base/jquery.ui.all.css]<script type="text/javascript" language="javascript"> $(document).ready(function(){  $("#wrap").resizable({   ghost: true,     animate: true,   animateDuration: 1000,   helper: "ui-resizable-helper",   minWidth: 300,   minHeight: 200  }); }); </script> </head> <body> <div id="wrap">   <h1>魔兽争霸</h1>   <h2>来源:知识宝库网 | 浏览次数:431052次 | 创建时间:2010-10-23</h2>   <p>魔兽争霸是一款非常著名的即时战略游戏。制作公司是美国的暴雪公司。最新版本为“魔兽争霸3:冰封王座”,目前的版本号为1.24.1.6374(更新至2009年8月26号)。</p>   <p>目前是单机游戏中非常受欢迎的游戏,除此之外,魔兽争霸还包括了游戏的同名电影。 </p> </div> </body> </html>
[b]效果图: [/b] [img]http://files.jb51.net/file_images/article/201306/2013061916454934.png[/img] [b]4:尺寸调整组件的方法 [/b]尺寸调整组件有4个方法,他们都是拖动组件和投放组件所共有的,即disable方法、enable方法、destroy方法和option方法
[b]5:调整事件回调函数 [/b]start:事件类型resizestart, 开始拖动改变大小时触发 resize: 事件类型resize, 拖动过程中,鼠标每移动一像素就触发一次 stop: 事件类型resizestop, 停止拖动时触发
[u]复制代码[/u] 代码如下:
  $("#droppable").droppable({      eventName: function(event, ui) {         //具体处理代码,this表示可调整尺寸的对象     } });
[b]ui则是一个包含附加信息的jQuery对象,该jQuery对象具有一下属性: [/b]helper: 一个jQuery对象,表示可拖动助手元素 originalPosition: 一个包含top属性和left属性的对象,表示开始调整前元素相对于原始对象的位置 originalSize: 一个包含width和height属性的对象,表示开始调整前元素的尺寸大小 position: 一个包含top属性和left属性的对象,表示当前元素相对于原始对象的位置 size: 一个包含width属性和height属性的对象,表示当前元素的尺寸大小 简单示例:
[u]复制代码[/u] 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>resizable组件</title> <script language="javascript" src="js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="js/jquery.ui.core.js"></script> <script type="text/javascript" src="js/jquery.ui.widget.js"></script> <script type="text/javascript" src="js/jquery.ui.mouse.js"></script> <script type="text/javascript" src="js/jquery.ui.resizable.js"></script> <style type="text/css"> body {  font-size:14px; } #wrap {  margin: 10px 20px 10px auto;  padding: 10px;  width: 450px;  height:150px;  background: #fff;  border: 5px solid #000;  float: right;  overflow: auto; } .message_box {  width:200px;  height:200px;  /* filter:dropshadow(color=#666666, offx=3, offy=3, positive=2);*/  float:left;  margin-right:10px; } /*#mask {  position:absolute;  top:0;  left:0; width:expression(body.clientWidth); height:expression(body.clientHeight);  background:#666;  filter:ALPHA(opacity=60);  z-index:1;  visibility:hidden }*/ .message {  border:#036 solid;  border-width:1 1 3 1;  width:95%;  height:95%;  color:#036;  font-size:12px;  line-height:150% } .header {  background:#036;  height:22px;  font-family:Verdana, Arial, Helvetica, sans-serif;  font-size:12px;  padding:3px 5px 0px 10px;  color:#fff;  cursor:move; } ul {  margin-right:25px; } .header div {  display:inline;  width:150px; } .header span {  float:right;  display:inline;  cursor:hand; } fieldset {  margin-bottom:5px; } img {  width:100px;  border:2px solid #D6D6D6;  margin:10px; } .ui-active {  background:#CC0; } .ui-hover {  background:#339; } .ui-highlight {  background:#000; } </style> <link href="CSS/base/jquery.ui.all.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="message_box1" class="message_box" >   <div class="message" >     <div class="header">       <div>茄菲猫</div>       <span>×</span></div>     <img src="images/jiafeimao.jpg" id="pic1"/> </div> </div> <div id="wrap"></div> <script language="javascript" type="text/javascript"> $(document).ready(function(){  $("#pic1").resizable({alsoResize:"#message_box1",   minHeight:100,   minWidth:100,   start:eventCallback,   resize:eventCallback,   stop:eventCallback   });  function eventCallback(e, ui) {   var content = "事件类型:" + e.type + ",当前大小:" + ui.size.width+ "*" + ui.size.height + ",原始大小:"+ui.originalSize.width+"*"+ui.originalSize.height+"<br/>";   var message = $("<span>").text(content);   $("#wrap").append(content);  } }); </script> </body> </html>
[img]http://files.jb51.net/file_images/article/201306/2013061916454935.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部