2013-10-18 45 views
2

我有一個可調整大小的div,其中包含text/sentences。當我resizediv,文本自動換行到container div的可用空間fit如何在javascript/php文本自動換行時獲得換行符

現在我需要通過php(gd library)這個text轉換爲圖像,但由於php-gd不能直接處理多文本,我需要以某種方式告訴它完全包裹文本和新行開始,但我沒有想法如何在javascriptphp中做到這一點。

而且,fontdynamic,所以我不能使用類似alphabets的大小來計算說dimension內可能的字符數。有任何想法嗎?

回答

1

一個小動作... 用<span></span>包裹每個字符並計算它們的偏移量。

Fiddle here

代碼:

$('#Action').click(function(){ 
    var orginalText = $('#container').text(); 
    var characters = orginalText.split(''); 
    var wrappedText = ""; 
    for(var i =0; i< characters.length; i++){ 
     wrappedText += "<span id='wrapped_" + i + "'>" + characters[i] + "</span>"; 
    } 

    $('#container').html(wrappedText); 
    var top = 0; 
    for(var i =0; i< characters.length; i++){ 
     var characterTop = $('#wrapped_'+i).offset().top; 
     if(characterTop > top){ 
      console.log("line break at position " + i); 
      top = characterTop; 
     } 
    } 
}); 
+0

真棒想法。雖然我會將偏移量作爲數組映射傳遞給PHP,但這會讓我在客戶端執行文本對齊等操作,並將其複製到後端。非常感謝! – Bluemagica

0

你可以嘗試玩計算機height和計算line-height。例如$('div').innerHeight()$('div').css('lineHeight')都可以。您可以找出文本分成多少行,然後使用一些換行算法自行添加適當的行尾。結果可能與瀏覽器中的結果不完全相同,但您可以關閉。