2013-02-14 4 views
4

여러 기사가 있지만 모두 같은 공간에 들어야합니다. 글자 수는 140 자로 제한되어 있습니다. 단락의 글자 수를 기준으로 글자 크기를 조정하고 있습니다. 단락의 문자 수가 적 으면 글꼴 크기가 더 커야합니다. & 반대의 경우도 마찬가지입니다.단어 수에 따라 글꼴 크기 설정 Jquery

아래의 코드가 작동하지 않는 것 같고 누군가 나를 도울 수 있는지 궁금해하고 있었습니까?

순간에 무슨 일이에요, 모든 단락에서 글꼴 크기가 8em :(

대단히 사전에 어떤 도움을 & 감사 감사! 여기

입니다 때문에, 마지막으로 다른 걸리는 것 같다 코드 :

$(function(){ 
    var $quote = $(".question p"); 
    var $numWords = $quote.text().split("").length;  
    if (($numWords >= 1) && ($numWords < 20)) { 
     $quote.css("font-size", "2.2em"); 
    } 
    else if (($numWords >= 20) && ($numWords < 60)) { 
     $quote.css("font-size", "1.8em"); 
    } 
    else if (($numWords >= 60) && ($numWords < 100)) { 
     $quote.css("font-size", "1.2em"); 
    } 
    else if (($numWords >= 100) && ($numWords < 140)) { 
     $quote.css("font-size", "0.9em"); 
    } 
    else { 
     $quote.css("font-size", "0.8em"); 
    }   
}); 
+0

플러그가 년대 .css 함수 ..는 각각 P 소자 내부 문자의 개수에 따라 각 페이지 소자 폰트 크기를 변경하는 것이 방법을 사용하여 다음과 같이하여 수행 in this for :) https://gist.github.com/mekwall/1263939 –

+0

문제가 해결되지는 않지만 분할시 문자를 세는 것처럼 $ numWords 변수의 이름을 변경해야합니다. ""단어가 아닙니다. – ChrisC

+0

안녕하세요,이 바이올린에서 잘 작동하는 것 같습니다.> http://jsfiddle.net/u3fyu/ – dev

답변

4

귀하의 문제는 개별적으로 각 단락을 치료하지 않을 것입니다은 다음을 참조하십시오 http://jsfiddle.net/wkEMK/1/

$(function(){ 
    $(".question p").each(function() { 
     var numChars = $(this).text().length;  
     if ((numChars >= 1) && (numChars < 20)) { 
      $(this).css("font-size", "2.2em"); 
     } 
     else if ((numChars >= 20) && (numChars < 60)) { 
      $(this).css("font-size", "1.8em"); 
     } 
     else if ((numChars >= 60) && (numChars < 100)) { 
      $(this).css("font-size", "1.2em"); 
     } 
     else if ((numChars >= 100) && (numChars < 140)) { 
      $(this).css("font-size", "0.9em"); 
     } 
     else { 
      $(this).css("font-size", "0.8em"); 
     }   
    }); 
}); 

원본 코드에서 '.question p'와 (과) 일치하는 모든 단락의 문자 수를 확인하고 있습니다. 예 : 10 개의 문자가있는 단락과 20 개의 문자가있는 단락이있는 두 단락이있는 경우 각 단락을 차례로 처리하는 대신 JS가 총 30 개로 한 번 실행됩니다.

3

$(function(){   
    $(".question p").css('font-size',function(){ 
     var $numWords = $(this).text().length; // get length of text for current p element 
     if (($numWords >= 1) && ($numWords < 20)) { 
      return "2.2em"; 
     } 
     else if (($numWords >= 20) && ($numWords < 60)) { 
      return "1.8em"; 
     } 
     else if (($numWords >= 60) && ($numWords < 100)) { 
      return "1.2em"; 
     } 
     else if (($numWords >= 100) && ($numWords < 140)) { 
      return "0.9em"; 
     } 
     else { 
      return "0.8em"; 
     }   
    });  
}); 

FIDDLE

+0

고마워요! 그게 다야 !!! – dennisterrey

관련 문제