jQuery获取元素位置以及高度与宽度 动态调整打

系统 2148 0

jQuery获取元素位置以及高度与宽度 动态调整打开新窗口效果

来源:http://www.biuuu.com/?p=285

上期在 jQuery模拟新窗口打开 轻松使用javascript创建新窗口 一 文中通过jQuery模拟新窗口打开创建新窗口,了解jQuery打开新窗口机制原理,但通过细心我们发现,定义的窗口CSS样式是固定的,对于实际应用 来说非常有限,需要扩展该功能增加创建新窗口的实用性,对于大部分应用来说,只需要获取元素的位置以及高度与宽度,就可以根椐当前元素的位置来调整打开新 窗口的位置,动态调整打开新窗口效果,这对于打开新窗口来说更加实用。jQuery提供了一个获取位置方法offset()和二个分别获取高度与宽度方法 height()和width(),结合上期实例,我们增加如下几行代码,了解jQuery获取元素位置以及高度与宽度方法,供参考。

实例代码(略)

javascript部分

  1. $(document).ready(function(){
  2. $("#oButton").click(function(){
  3. openwin.getWin();
  4. });
  5. });
  6. var openwin = {};
  7. openwin.getWin = function(){
  8. var obj = $("#open");
  9. //是否已经新开窗口
  10. if(obj.html() != '' ){
  11. openWindow = $("#newWindow");//存在窗口
  12. openWindow.slideToggle("slow");//显示效果
  13. }else{
  14. //模拟弹出窗口样式
  15. var openWindow = $(openwin.getHtml());//不存在窗口
  16. //定义CSS样式 模拟关键 自定义设置CSS样式
  17. var obj = $("#oButton");
  18. var offset = obj. offset() ;
  19. var right = offset.left+obj. width() ;
  20. var down = offset.top+obj. height() ;
  21. openWindow.css({
  22. 'font-size':'12px',
  23. 'position':'absolute',
  24. 'margin':'20px',
  25. 'left': right ,
  26. 'top': down ,
  27. 'width':'300px',
  28. 'background-color':'#f0f5FF',
  29. 'border': '1px solid #000',
  30. 'z-index': '50',
  31. 'padding':'10px'});
  32. openWindow.appendTo($("#open"));
  33. }
  34. //绑定单击事件 确定
  35. openWindow.find("#show").click(function(){
  36. openwin.showWindow();
  37. }).end();
  38. //绑定单击事件 关闭
  39. openWindow.find("#closed").click(function(){
  40. openwin.closeWindow();
  41. }).end();
  42. }
  43. //获取窗口页面元素 模拟窗口
  44. openwin.getHtml = function(){
  45. //自定义页面元素,样式,大小等
  46. html  = '<div id="newWindow">';
  47. html += '<p>jQuery弹出窗口</p>';
  48. html += '<p>网站:<input type="text" name="" value="" /></p>';
  49. html += '<p><button id="show">确定</button> <button id="closed">关闭</button></p>';
  50. html += '</div>';
  51. return html;
  52. }
  53. //确认事件
  54. openwin.showWindow = function(){
  55. $("#newWindow").hide();
  56. }
  57. //关闭事件
  58. openwin.closeWindow = function(){
  59. $("#newWindow").hide();
  60. }

代码详解
1,获取对象 (自定义调整打开新窗口参照元素)
var obj = $("#oButton");
实例中我获取的对象是弹出窗口按钮,这样创建的新窗口就会根椐按钮的位置进行调整,实例中将创建的新窗口显示的按钮的右下角。

2,获取对象元素的位置 (offset()方法)
var offset = obj.offset();
获取对象元素的位置,分别是元素的top和left,调用方法是:offset.left和offset.top,可知当前对象的左部和顶部位置。

3,获取对象元素的宽度 (width()方法)
var right = offset.left+obj.width();
实例中是获取对象的右下角位置,创建新窗口的左部位置。

4,获取对象元素的高度 (height()方法)
var down = offset.top+obj.height();
实例中是获取对象的右下角位置,创建新窗口的顶部位置。

5,定义CSS样式,分别设置左部和顶部。
'left':right,
'top':down,
要注意CSS样式中margin和padding的值,以及浏览器IE与firefox兼容等效果。

结合上面实例,jQuery获取元素位置以及高度与宽度非常简单,通过内置方法 offset (), width ()和 height ()实现我们的动态调整打开新窗口功能,对于其它扩展应用来说也一样,了解jQuery获取元素位置以及高度与宽度方法,对于创建新元素,调整元素位置与大小,将非常实用。

jQuery获取元素位置以及高度与宽度 动态调整打开新窗口效果


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论