jquery如何设置控件位置

来源:互联网 发布:软件版权登记费用 编辑:程序博客网 时间:2024/05/17 07:50

跟着《锋利的jQuery》的示例练习操作DOM,结果发现

$("#tooltip").css({top":(e.pageY+20)+"px","left":(e.pageX+10)+"px"});不起作用。

查找原因才发现跟元素的定位类型有关,改为

$("#tooltip").css({"position": "absolute","top":(e.pageY+y)+"px","left":(e.pageX+x)+"px"});就OK了。

 

基于此,总结一下jquery是如何设置控件位置的:

position 属性规定元素的定位类型,这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。

属性说明:
1 absolute
:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
2 fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
3 relative 生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。
4 static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 
5 inherit 规定应该从父元素继承 position 属性的值。(ie中未支持此属性

所有空间position的默认值为static,所以需要将其设置为其他属性方可进行定位。

若有多个层 切需要设定层的层次关系 那么需要设置z-index属性。
z-index 属性设置元素的堆叠顺序,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

注释:1)元素可拥有负的 z-index 属性值。
          2)z-index 仅能在定位元素上奏效(例如 position:absolute;)!

说明:该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。

//offset()获取当前元素基于浏览的位置  var offsettop=$("#unamespan").offset().top;   var offsetleft=$("#unamespan").offset().left;  //position()获取当前元素基于父容器的位置             var positiontop=$("#unamespan").position().top;  var positionleft=$("#unamespan").position().left;     //设置panel的位置基于unamespan的坐标  $("#panel").css({position: "absolute",'top':offsettop+100,'left':offsetleft+50,'z-index':2});   
原创粉丝点击