2011-02-28 51 views
0

假設我有類似我怎樣才能獲得相對定位父,多數民衆贊成

<body> 
    <article style="left: xxx; top: xxx">...</article> 
    <article style="left: xxx; top: xxx">...</article> 
    <article style="left: xxx; top: xxx">...</article> 
</body> 

我的目標是什麼「行業」是元素中,如發現。頂部/底部左/右。然後添加樣式的類。所以,我想我會

  1. 尋父這就是相對定位
  2. 得到其寬度&高度,並從那裏算那裏文章/元素是

我知道,我的文章相對於定位身體,但我怎樣才能得到動態的JS/jQuery。我正在創建一個插件,所以我不想硬編碼父母定位的親戚。

+0

你不能只給每篇文章的ID或類,「頂部/底部/左/右」,並獲得父母的ID,而不是做一些複雜的計算? – 2011-02-28 02:44:41

+0

你想如何判斷元素在哪個「扇區」? – James 2011-02-28 03:28:30

+0

@Peter Of The Corn,現在我使用它,我想也許是爲了減少一些標記並挑戰自己的技能,我試着 – 2011-02-28 04:32:25

回答

0

亞歷克斯托馬斯是絕對正確的正確使用JavaScript來提高用戶體驗的方式,加載迅速和優雅退化。

總之,這裏的概念的jsfiddle的快速證明確實你所描述的:

Quadrant Based Classes

源(粗糙):

var $articles = $("article"); 
$articles.each(function(){ 
    var $which = $(this); 
    var $parent = $which.parent(); 
    var className = ""; 

    var pHeight =$parent.outerHeight(); 
    //alert($which.offset().top + " <> " + (pHeight/2)); 
    if($which.offset().top < (pHeight/2)){ 
     className += "Bottom"; 
    } else { 
     className += "Top"; 
    } 

    var pWidth =$parent.outerWidth(); 
    //alert($which.offset().left + " <> " + (pWidth /2));   
    if($which.offset().left < (pWidth/2)){ 
     className +="Left"; 
    } else { 
     className +="Right"; 
    } 
    $which.addClass(className); 
});