2017-10-02 7 views
3

Ich habe ein Div, in dem zufällige Wörter durch Los verteilt werden. Um diese Worte angezeigt verwende ich dieses Skript:Gibt es eine Möglichkeit, eine Funktion für ein Wort zu setzen, das länger als (z. B.) 10 Buchstaben ist?

<script src="jquery.fittext.js"></script> 
    <script type="text/javascript"> 
     $("#my_random_word").fitText(0.6); 
    </script> 

Das Problem ist, dass, wenn mein Wort ist länger als 10 Zeichen ist zu breit für den Bildschirm und statt Ändern der Größe, es überläuft gerade die Breite des Bildschirms. CSS:

#parent_of_my_random_word { 
    display: table; 
    position: absolute; 
    height: 100%; 
    width: 100%; 
    text-align: center; 
} 

#my_random_word { 
    color: red; 
    height: 100%; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    user-select: none; 
    } 

Gibt es eine Möglichkeit eine andere Funktion für die Wörter angeben, die länger als 10 Buchstaben oder was kann ich sonst noch tun? Vielen Dank.

+1

Ich glaube, Sie könnten dies mit CSS statt JS lösen. Vielleicht "overflow: hidden" und ein "text-overflow: ellipsis;", obwohl ich nicht sicher sein kann, was in der Frage steht. Wenn Sie es in JS tun müssen, stecken Sie einfach ein "if" in die Länge. – DBS

Antwort

2

Sie so etwas wie text-overflow: ellipsis; verwenden können, das Wort ab und verhindern Überlauf zu schneiden.

Oder man kann es mit JS Griff:

var myWord = $("#my_random_word").text(); 

if (myWord.length >= 10) { 
    // ... handle it 
} else { 
    myWord.fitText(0.6); 
} 

Um mehrere Wörter überprüfen Sie regex verwenden können. Das Folgende sucht nach einem einfachen Muster von word-space-word

var pattern = /\w\s+\w/; 

'word'.match(pattern); // null 
'multiple words'.match(pattern); // match found 
+0

Ich habe noch eine Frage. Gibt es eine Möglichkeit, zwischen einem Wort und mehreren Wörtern zu spezifizieren? Ich meine #my_random_word kann auch zwei oder drei Wörter haben. – wymyszony

+0

Siehe die obige Bearbeitung –

1

Sie können versuchen, css word-break: break-all; zu verwenden, um das Wort zu brechen.

.content { 
 
    word-break: break-all; 
 
    background: rgba(0, 0, 0, .1); 
 
    width: 100px; 
 
}
<div class="content">veeeerrrrryyyyylonnnng worrrdd</div>

Verwandte Themen