jQueryUI确实是很方便的前端UI控件,本文只介绍一些resizable功能的使用心得。
官网地址:http://jqueryui.com/resizable/
功能的需求是,在一个列表页面,点击某一条记录的时候,页面的右侧弹出Div显示这条记录的详情,Div高度与页面高度一致,位置固定(就是一个position:fixed;overflow:scroll;的Div),且要可手动拖动改变大小。
问题1:Div固定在页面右侧,resize时Div会跑到左边
我的Div样式大致是这样:
position:fixed;float:right;right:10px;width:500px;height:900px;显示效果是占据页面右边部分,且不随页面滚动条移动。要求可以拉住Div的左border进行resize。
resizable初始化:
$( "#resizable" ).resizable({ handles: "w" });显示正常,但是拉住Div左border resize时,Div区域会跑到页面左边。记得当时在网上各种找,研究resizable插件,最后根据资料和自己的试验得到两个解决方法。
1.在Div上增加left:xxpx;属性,这样Div左border拉伸时Div位置会保持不变。
2.在resizable的resize事件上做操作
$( "#resizable" ).resizable({ handles: "w" , resize: function(event, ui) { $("#resizable").css("left", ""); } });
resizable在resize时会计算Div的位置,这种方法是resize时去掉产生的left属性,这样也能达到Div位置不改变的效果。
方法1比较简单,但是我的情况肯定不行,在许多场景下,left也都是不固定的,所以我使用的是第二种。
问题2:当Div有滚动条时的异常
有时Div中会显示大量的信息,会需要滚动条,这很正常。但是resizable似乎不太喜欢滚动条,初始化之后,滚动条下拉一段,则新出现的Div左边缘不支持resize了。调试发现,resizable初始化的时候,在Div左border上会生成一个用于handle的div,鼠标选中此处区域进行拖拉,达到Div resize的效果。这个handle div的高度与最初Div的高度一致,但是滚动条下拉之后,这个handle div被滚动到上面了,新出现的左border上并没有handle div,自然也就不能resize了。了解到这个原因后,处理方法也很明了了。
解决方法.在Div外面嵌套一个div,外层div的大小固定且无滚动条,内层Div有滚动条,对外层div进行resizable,这样在下拉滚动条时,移动的是内层Div的滚动条,外层div的左border是保持不动的,自然也不会有问题2了。
当然也可以对handle div进行修改,让它位置不随滚动条改变。这个方法理论上可行,但我没试过,毕竟嵌套div的办法已经非常简易了。
问题3:定制可拖动区域,比如放到Div外面
resizable本身支持8拉伸方向,w,e,s,n,ws,wn,es,en,对应4个方向和Div的4个脚。在四个方向上,可以在border上拉伸,在4个脚上,则是在Div的角落里生成一个小三角。
经常会有需求,定制可拖动区域(即handle div),放到Div内部另一个元素上,或者到Div外面。jquery resizable提供了定制handle div的方法,但是对于Div外部是无效的(原谅我没有测试放在Div内部行不行……)。
resizable相关的样式有:.ui-resizable-handle,.ui-resizable-w,.ui-resizable-e,.ui-resizable-s,等等,.ui-resizable-handle是可拖动区域的样式,.ui-resizable-w等就是区域的位置。直接在css文件里修改上述样式就可以达到预期效果。
比如:
.ui-resizable-handle { width: 30px; height: 30px; background-color: #ffffff; border: 1px solid #000000; } .ui-resizable-w { left:-50px; top:50%; }下面是我写的一个完整的例子:http://jsfiddle.net/carey_zhao/2o2mbbse/
相关推荐
在压缩包中,我们可以看到以下几个关键文件夹: 1. **index.html** - 这通常是示例页面或者项目的入口文件,包含了引入jQuery UI所需的JavaScript和CSS资源,以及可能的HTML结构示例,用于展示组件的使用方法。 2....
在jQuery UI中,以下几个核心概念和功能是至关重要的: 1. **主题**: jQuery UI 提供了一套可自定义的主题,允许开发者通过CSS样式来改变组件的外观,以符合网站的整体设计风格。这些主题可以通过ThemeRoller工具...
4. **社区支持**:由于jQuery的广泛使用,jQuery UI也有庞大的开发者社区,遇到问题时可以找到很多解决方案和示例代码。 **使用jQuery UI**: 在实际使用中,首先需要在页面中引入jQuery库和jQuery UI的CSS及JS...
jQuery UI则在jQuery的基础上扩展了许多功能,包括但不限于以下几点: 1. **部件(Widgets)**:jQuery UI提供了一系列的部件,如日期选择器(Datepicker)、对话框(Dialog)、下拉菜单(Autocomplete)等,这些...
这个文件包含了jQuery UI的所有核心组件,如对话框(Dialog)、拖放(Draggable)、可排序(Sortable)、可折叠(Accordion)、时间选择器(Datepicker)等,以及众多动画效果和实用工具函数。由于进行了压缩,代码...
在jQuery UI中,主要包含以下几个核心组成部分: 1. **主题Roller**:jQuery UI 提供了一个在线工具,允许开发者自定义和生成符合项目需求的视觉样式。通过调整颜色、字体和布局等参数,可以创建出与网站或应用风格...
实现这一功能需要设置几个关键选项,如数据源(source),可以是静态数组、AJAX 调用或函数返回;延迟(delay),控制多久后触发自动完成;最小字符数(minLength),用户输入多少字符后才显示建议等。 **index....
jQuery UI 的核心特性包括但不限于以下几个方面: 1. **可重用的组件**:jQuery UI 提供了一系列可重用的UI组件,如日期选择器(Datepicker)、对话框(Dialog)、下拉菜单(Autocomplete)、滑块(Slider)、...
在提供的压缩包中,我们可以看到以下几个关键文件夹: 1. **index.html**:这是示例网页的入口文件,通常包含了引入jQuery和jQuery UI库的脚本以及演示组件的HTML代码。 2. **css**:存放CSS样式文件,包括默认主题...
在提供的压缩包中,我们可以看到以下几个主要文件夹: - **index.html**:这是示例或者测试页,展示了jQuery UI组件的使用方法。 - **development-bundle**:包含了未压缩和未合并的JavaScript和CSS文件,适合开发...
它包括但不限于以下几个方面: 1. **对话框(Dialog)**:jQuery-UI 提供了弹出式对话框功能,可以用来显示警告、确认信息,或者创建浮动窗口。通过设置不同的选项,如拖动、大小调整、自动关闭等,能实现高度定制...
使用jQuery Easy UI,可以通过以下几种方式实现: - 复合版面,即一个版面内嵌套其他版面。 - 可折叠版面,允许用户展开或收起特定区域。 - 使用`tabs`组件创建选项卡界面。 - 动态添加tabs,以便在运行时增加新的...
标题中的“Jquery 高级控件,各种js控件,牛人写的”暗示我们将讨论jQuery UI中的高级功能和组件,而描述中的“拖拽效果,accordion,tabs,仿桌面程序控件”则指出了几个特定的jQuery UI控件。 首先,jQuery UI的...
jQuery的更新通常关注以下几个方面: 1. **性能提升**:新版本可能通过优化内部算法和代码结构来提高运行速度,使得页面加载和交互更快。 2. **API调整**:jQuery可能对某些API进行了调整,以提供更清晰的编程接口...
本篇文章将详细介绍在“jquery最新插件”压缩包中包含的几个关键组件:`jquery.ui`、`jquery树形菜单设计`、`jquery.treeview`以及验证码功能。 1. **jQuery UI** jQuery UI 是一套基于jQuery的用户界面库,提供了...
- **jQuery UI Sortable/Resizable/Draggable**:这些组件提供了元素的拖放排序、大小调整和拖动功能,常用于构建交互式的界面。 - **Bootstrap Toggle**:提供美观的开关按钮,适用于切换设置等场景。 总的来说,...
以下是几个核心功能的使用方法: 1. **拖拽(Draggable)**:通过引入`ui.mouse.js`、`ui.draggable.js`等文件,并调用`.draggable()`方法可以实现元素的拖拽功能。可以设置不同的选项来自定义拖拽行为,如辅助元素...
如果你遇到不支持greybox的情况,有以下几个解决方案: 1. **寻找替代品**:有很多现代的jQuery弹出层插件可供选择,如Bootstrap Modal、Magnific Popup、Fancybox等。这些插件提供了更好的性能和更多的自定义选项...
jQuery库用于简化DOM操作,提供事件绑定等功能,而实际的图片裁剪逻辑则由额外的插件如jQuery UI中的Resizable和Draggable,或者是专门的裁剪插件如Cropper.js或Jcrop等实现。 在这个压缩包中,“使用须知.txt”...
头像剪切通常会用到一些开源库,如Cropper.js或JQuery UI的Resizable组件,它们提供了方便的接口来实现图像的裁剪功能。这些库不仅可以帮助我们轻松实现裁剪操作,还能提供诸如旋转、缩放等高级功能,提高用户体验。...