2014-09-25 43 views
2

可以以某種方式得到mm而不是.draggable函數的px嗎?當我看着我的督察使用這個時,我得到頂部:'一些像素'左:'一些像素'。.draggable mm而不是px的位置?

反正有沒有說從一開始「我需要mm而不是px」或將px轉換爲mm?我的父對象已經有了mm,所以我真的也需要mm和top和left的值。

+0

[從W3C(http://www.w3.org/Style/Examples/007/units.en.html):'「所謂絕對單位(釐米,毫米,在,pt和pc)在CSS中的含義與其他地方相同,其中任何一個表達的長度都將顯示爲與硬件和軟件的精確度相同的大小。**不推薦在屏幕上使用它們* *',因爲屏幕大小差別很大,一個大屏幕可能是60釐米(24英寸),一個小巧的便攜式屏幕可能只有8釐米,而且你不會從相同的距離看它們。「' – 2014-09-26 07:50:38

+1

因此,爲什麼你使用'mm'嗎?沒有*選項*來改變這一點,因爲這確實不是一個常見的要求。你必須使用'px'來計算它,或者在''jQuery UI'下面進行計算。 – 2014-09-26 07:53:50

+0

嘿。我需要以mm爲單位導出所有內容,因爲它最後會生成一個.xml文件。所以我真的需要確切的毫米量。 – 2014-09-26 08:26:39

回答

0

它種取決於你爲什麼要這麼做的原因是:

像素和物理測量結果之間的相互關係取決於 完全在顯示屏上,有多少物理像素有每 (平方)毫米。 72ppi(像素每英寸)曾經是一個典型的分辨率,但是像素密度在很多設備上都有所增加,但是這已經不是特定的了。

根本沒有標準的公式。
- deceze

可以推測將會它,如果你不需要那麼精確的說,一毫米= 3.779528px,但對於大多數的目的,這將導致比它多的問題會解決。

$('.draggable').draggable({ 
 
    containment: 'parent', 
 
    drag: function(event, ui) { 
 
    $('.pos').html(
 
     '<p>top:' + $('.draggable').position().top/3.779528 + 'mm</p>' + 
 
     '<p>left:' + $('.draggable').position().left/3.779528 + 'mm</p>' 
 

 
    ); 
 
    } 
 
});
.parent { 
 
    position: relative; 
 
    width: 100mm; 
 
    height: 100mm; 
 
    background: silver 
 
} 
 
.draggable { 
 
    height: 20mm; 
 
    width: 20mm; 
 
    background: grey 
 
} 
 
.pos { 
 
    position: fixed; 
 
    bottom: 0; 
 
    color blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.min.js"></script> 
 

 
<div class="parent"> 
 
    <div class="draggable"></div> 
 
</div> 
 
<div class="pos"></div>

+0

問題是我需要精確數量的MM在此之後導出一個xml。毫米對div的工作,但我需要確切的mm:/ – 2014-09-26 07:13:31

+0

@FrederikWitte只是一個想法,但你可以擺脫在px中構建用戶界面,然後將所有內容都轉換爲mm?這樣可能會有點不合適,但一切都會成比例的。 – apaul 2014-09-26 13:59:14

+0

這會造成問題。想象一下你在底部放一個長方形的din A4頁面。如果這距離高度或位置僅1mm(偏離),則會在頁面上看到白色邊框。這些xmls只有x和y位置。 – 2014-09-29 07:16:38

相關問題