中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

input寬度隨內容變化

發布時間:2020-06-22 06:50:44 來源:網絡 閱讀:770 作者:Gendan5 欄目:開發技術

今天收到一個需求,input的寬度隨著內容的變化而變化,最重要的還有最大寬度的限制。

然后各種查資料個嘗試,做了三個小案例:

一、獲取文字數量*文字寬度去計算

雖然說這個方法代碼量比較少,但是在不同的字體中還是有一定的誤差的,所以建議不要使用,但是分享的角度來講,我還是拿出來寫一寫。

<input type="text"/>
<script type="text/javascript">(www.gendan5.com)
$(function(){
$('input').on('keydowm keyup',function () {
var textLength = $(this).val().length,//獲取input的文字數量
inputWidth = textLength*12;//12是字的寬度
$(this).width(inputWidth);
});
});
</script>
這個方法對于中文還是可以的,但是一般遇到中英文混合就不行了,所以如果是中英文混合的input我建議放棄。

二、利用scrollWidth來制作一個邊長的(變不了短)

這個是有缺陷的,因為我們獲取的是scrollWidth指,所以他只能獲取最長的,而不能獲取文字不撐開的時候的長度。

咱們直接貼代碼把

<input type="text"/>
<script type="text/javascript">
$(function () {
$('input').on('keydowm keyup',function () {
var adad = $('input').get(0).scrollWidth;
console.log(adad);
$(this).width(adad);
})
})
</script>

三、文本比較法,這個方法雖然比較繁雜,但是無論誤差還是可行性都是最高的

咱們先來個布局:

<div class="box">
<input type="text" value="請假"/>
<div></div>
</div>
<style>
.box div{ float:left;}
.box input{ width:80px; text-align:center;}
</style>
再來jq:

<script type="text/javascript">
$(function(){
function inputWidth(){
$('.box div').html($('.box input').val());//把input的文字給div
var inwidth = $('.box div').width();//獲取div的寬度
if (80 < inwidth && inwidth < 800){
$('.box input').width(inwidth);//把div的寬度給input
};
};
inputWidth();
$('.box input').on('keydown keyup input',function(){//時時更新
inputWidth();
});
});
</script>
其實JQ和原生JS一樣的道理,如果你使用JQ的直接拿走就可以了,如果是原生的按照這個想法寫就可以了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绩溪县| 德惠市| 元氏县| 馆陶县| 焉耆| 北京市| 大城县| 彩票| 邵阳市| 渑池县| 故城县| 钦州市| 清徐县| 阳西县| 襄垣县| 京山县| 余庆县| 古田县| 陇南市| 准格尔旗| 武宣县| 古蔺县| 丘北县| 八宿县| 固原市| 东乌珠穆沁旗| 苍山县| 三亚市| 阿克苏市| 保定市| 石泉县| 嘉定区| 淮安市| 中牟县| 迁西县| 万州区| 讷河市| 永善县| 临海市| 嘉峪关市| 濮阳县|