var counter = 0; function shouldCyclePlaceholder() { if (counter >= 20) { return false; } if ($('#id_text').width() < 400) { return false; } text = document.getElementById("id_text"); cycle = text != document.activeElement && text.value == ""; if (cycle) { counter++; } return cycle; } $(document).ready(function() { var ratio = $('#id_text').width() / $('#id_text').attr('placeholder').length; var rem = Math.min(Math.max(0.14 * ratio - 0.08, 0.5), 1); $('#id_text').css('fontSize', rem + 'rem'); })