2017-06-02 35 views
0

設置,我有以下代碼:CSS是jQuery中

function MyFitText2(width, height, span) { 
    var fontSize = 20; 
    $(span).css('font-size', fontSize); 
    do { 
     fontSize = fontSize - 1; 
     textHeight = $(span).height(); 
     textWidth = $(span).width(); 
     $(span).css('font-size', fontSize); 
    } while ((textHeight > height || textWidth > width) && fontSize > 1); 
} 

及用途:

var pinkboxspan = "<span style=\"position:absolute; left:" + $thisPinkBox["PinkBoxLeft"] + "px; top:" + $thisPinkBox["PinkBoxBoxTop"] + "px; " + 
         "text-align:left; font-weight: bold; color: red; background: linear-gradient(rgba(255, 215, 15, 0.5),rgba(255, 215, 15, 0.5));" + 
         "line-height:1.1; " + 
         "\">" + text + "</span>&nbsp;"; 

MyFitText2($thisPinkBox["PinkBoxWidth"], $thisPinkBox["PinkBoxHeight"], pinkboxspan); 
$(pinkboxspan).css('width', $thisPinkBox["PinkBoxWidth"] + 'px'); 
$(pinkboxspan).css('height', $thisPinkBox["PinkBoxHeight"] + 'px'); 

但結果:

<span style="position:absolute; left:870px; top:413px; text-align:left; font-weight: bold; color: red; background: linear-gradient(rgba(255, 215, 15, 0.5),rgba(255, 215, 15, 0.5));line-height:1.1; ">Sergey's Office 
<br>Y Amphitheatre Parkway 
<br>Mountain View, CA XXXXX 
<br>United States 
<br></span> 

然後由我把它添加到DOM以下方式:

var imageElement = $("<div style='text-align:left;'><div style='position: relative; display: inline-block;'><img style='position: relative; vertical-align: central;' src='" + $('#previewImage').attr('src') + "' /></div></div>"); 

var divElement = imageElement.find('div'); 

var divContent = ''; 
    // code above in $.each 
    divContent = divContent + pinkboxspan; 

divElement.append(divContent); 

$('#divOverlay').html(divElement); 

所以,參數寬度/高度沒有設置。爲什麼以及如何解決它?

+0

你在哪裏以及如何將'pinkboxspan'附加到DOM? – Satpal

+0

@Satpal,是的,你問我如何將它添加到DOM,我顯示代碼 –

回答

1

您正在創建未保持的jQuery對象並處理其CSS規則,因此未反映已修改的CSS屬性。

創建一個jQuery對象,並通過代碼使用它。

var span = $(pinkboxspan); 
span = MyFitText2($thisPinkBox["PinkBoxWidth"], $thisPinkBox["PinkBoxHeight"], span); 
span.css('width', $thisPinkBox["PinkBoxWidth"] + 'px'); 

//if you need string 
pinkboxspan = span.prop('outerHTML'); 

function MyFitText2(width, height, span) { 
    span.css('font-size', 20); 
    //Manipulate Span properties 
    return span; 
} 
0

在開始時創建的jQuery對象,以便改變你pinkboxspan分配...

var pinkboxspan = $("<span style=\"position:absolute; left:" + $thisPinkBox["PinkBoxLeft"] + "px; top:" + $thisPinkBox["PinkBoxBoxTop"] + "px; " + 
        "text-align:left; font-weight: bold; color: red; background: linear-gradient(rgba(255, 215, 15, 0.5),rgba(255, 215, 15, 0.5));" + 
        "line-height:1.1; " + 
        "\">" + text + "</span>&nbsp;"); 

然後更改其他代碼使用pinkboxspan作爲一個jQuery對象,而不是純文本.. 。

MyFitText2($thisPinkBox["PinkBoxWidth"], $thisPinkBox["PinkBoxHeight"], pinkboxspan); 
pinkboxspan.css('width', $thisPinkBox["PinkBoxWidth"] + 'px'); 
pinkboxspan.css('height', $thisPinkBox["PinkBoxHeight"] + 'px'); 

更改您的功能,以及...

function MyFitText2(width, height, span) { 
    var fontSize = 20; 
    span.css('font-size', fontSize); 
    do { 
     fontSize = fontSize - 1; 
     textHeight = span.height(); 
     textWidth = span.width(); 
     span.css('font-size', fontSize); 
    } while ((textHeight > height || textWidth > width) && fontSize > 1); 
} 

你完成了:)

+0

我怎麼能將它添加到我的DOM呢? –

+0

使用appropraite JQuery選擇器選擇要添加到的元素,並使用append方法,例如。 $( 「身體」)。追加(pinkboxspan) –