क्या इनपुट की मूल्य चौड़ाई प्राप्त करना संभव है और इनपुट को गतिशील रूप से आकार बदलना संभव है ताकि मूल्य फिट हो जाए?jQuery - मूल्य की चौड़ाई के आधार पर आकार इनपुट का आकार बदलना?
उत्तर
:
$('#resizeme').keydown(function(){ // listen for keypresses
var contents = $(this).val(); // get value
var charlength = contents.length; // get number of chars
newwidth = charlength*9; // rough guesstimate of width of char
$(this).css({width:newwidth}); // apply new width
});
आप व्यक्तिगत पसंद/पाठ आकार
उदाहरण पर गुणक को बदल सकता है
यहाँ एक उदाहरण है यहाँ वें है ई jQuery कोड:
$('input').each(function(){
var value = $(this).val();
var size = value.length;
// playing with the size attribute
//$(this).attr('size',size);
// playing css width
size = size*2; // average width of a char
$(this).css('width',size*3);
});
कुछ सरल: http://jsfiddle.net/bzBdX/6/
$(function(){
$("input").keyup(function(){
$(this).stop().animate({
width: $(this).val().length*7
},100)
})
})
'लंबाई * 7' सुनने के लिए 'कीडाउन' फ़ंक्शन जोड़ने पर विचार करें? आपने इसकी गणना करने के लिए [this] (http://xkcd.com/221/) विधि का उपयोग किया है? –
आप js बेला ... http://jsfiddle.net/ninadajnikar/bzBdX/9/ पर इस डेमो देख सकते हैं।
आप चौड़ाई मान अपडेट कर आप की तरह के रूप में यह
तो मैं अंतराल में डालने पत्र द्वारा एक उदाहरण है जहां यह चौड़ाई की गणना करने की कोशिश करता बना दिया है और की गणना वहाँ चौड़ाई
(function() {
var mDiv = $("<span />").text("M").appendTo("body"),
mSize = mDiv.width();
mDiv.detach();
var letterSize = function(s) {
var sDiv = $("<span />").text("M" + s + "M").appendTo("body"),
sSize = sDiv.width();
sDiv.detach();
return (sSize - (mSize * 2)) * 0.89;
};
$("input[data-resise-me]").each(function() {
var minSize = $(this).width();
var resizeInput = function() {
var calcSize = $.map($(this).val(), letterSize);
var inputSize = 0;
$.each(calcSize, function(i, v) { inputSize += v; });
$(this).width(inputSize < minSize ? minSize : inputSize);
};
$(this).on({ keydown: resizeInput, keyup: resizeInput });
});
}());
शायद ऐसा करने का एक बेहतर तरीका है।
आप 0.8 9 से गुणा क्यों करते हैं? –
के रूप में क्रोम 25 और Firefox 19. पर परीक्षण किया गया इस उदाहरण (http://jsfiddle.net/9ezyz/)
function input_update_size()
{
var value = $(this).val();
var size = 12;
// Looking for font-size into the input
if (this.currentStyle)
size = this.currentStyle['font-size'];
else if (window.getComputedStyle)
size = document.defaultView.getComputedStyle(this,null).getPropertyValue('font-size');
$(this).stop().animate({width:(parseInt(size)/2+1)*value.length},500);
//$(this).width((parseInt(size)/2+1)*value.length);
}
$('input')
.each(input_update_size)
.keyup(input_update_size);
मैं GitHub पर एक jQuery प्लगइन है: https://github.com/MartinF/jQuery.Autosize.Input
यह इनपुट के मूल्य को प्रतिबिंबित करती है तो यह गणना कर सकते हैं अनुमान लगाने या अन्य दृष्टिकोणों की बजाय वास्तविक लंबाई।
आप यहाँ एक लाइव उदाहरण देख सकते हैं: http://jsfiddle.net/mJMpw/6/
उदाहरण:
<input type="text" value="" placeholder="Autosize" data-autosize-input='{ "space": 40 }' />
input[type="data-autosize-input"] {
width: 90px;
min-width: 90px;
max-width: 300px;
transition: width 0.25s;
}
तुम सिर्फ न्यूनतम/अधिकतम-चौड़ाई सेट और चौड़ाई पर एक संक्रमण का उपयोग करता है, तो आप एक अच्छा प्रभाव चाहते हैं कि सीएसएस का उपयोग ।
आप इनपुट तत्व पर डेटा-ऑटोसाइज-इनपुट विशेषता के लिए जेसन नोटेशन में मान के रूप में अंत में स्थान/दूरी निर्दिष्ट कर सकते हैं।
बेशक आप भी बस इसे jQuery
$("selector").autosizeInput();
का उपयोग कर प्रारंभ कर सकते हैं @ManseUK ने उल्लेख किया। यह लाइन मेरे लिए काम करती है। JQuery संस्करण 1.8
$ ('# resizeme')।सीएसएस ({चौड़ाई: newwidth});
वर्णों की संख्या के आधार पर ये सभी समाधान काफी कमजोर हैं, क्योंकि प्रत्येक चरित्र एक अलग चौड़ाई का हो सकता है यदि यह एक मोनोटाइप फ़ॉन्ट नहीं है। मैं इस समस्या को हल कर रहा हूं जिसमें एक ही फ़ॉन्ट गुणों के साथ टेक्स्ट इनपुट का मूल्य शामिल है और इसकी चौड़ाई आवश्यकतानुसार हो रही है।
कुछ इस तरह:
function resizeInput() {
$('body').append('<div class="new_width">'+$(this).val()+'</div>');
$(this).css('width', $('.new_width').width());
$('.new_width').remove()
}
$('input')
// event handler
.keyup(resizeInput)
// resize on page load
.each(resizeInput);
वर्तमान जवाब जटिल करने के लिए waay थे। एक त्वरित एक
$('#myinput').width($('#myinput').prop('scrollWidth'))
इनपुट कुंजीडाउन/अप/प्रेस ईवेंट में उपरोक्त जोड़ना मामूली है। क्रोम
तकनीकी रूप से प्रश्न jquery का उल्लेख किया। हालांकि यह समस्या का सबसे अच्छा समाधान है। Rgds –
- 1. jQuery टेबललेटर + कॉलम चौड़ाई का आकार बदलना
- 2. यूआईएलएबल ऑटो को आकार के आधार पर आकार बदलना
- 3. jQuery: ब्राउज़र का आकार बदलना
- 4. खिड़की के आकार का आकार बदलना
- 5. चिनाई प्लगइन: आकार का आकार बदलना
- 6. जेएसक्रॉलपेन परिवर्तनीय आकार की सामग्री के साथ आकार बदलना
- 7. UIViews का आकार बदलना
- 8. बिटमैप का आकार बदलना
- 9. बटन का आकार बदलना
- 10. इसकी सामग्री के आधार पर एक UIWebView गतिशील रूप से आकार बदलना फ़ॉन्ट आकार
- 11. स्क्रॉलबार पृष्ठ का आकार बदलना
- 12. टॉगल चौड़ाई आकार बदलें एनीमेशन - jquery
- 13. एपविजेट में टेक्स्टव्यू में विजेट आकार के आधार पर पाठ आकार का आकार कैसे बदलें?
- 14. पंक्तियों की संख्या के आधार पर jqGrid का आकार बदलें?
- 15. सर्वर पर छवियों का आकार बदलना
- 16. एसटीएल का वेक्टर आकार बदलना
- 17. पृष्ठ संक्रमण के दौरान Jquery मोबाइल पेज का आकार बदलना
- 18. रोटेशन पर UINavigationBar का आकार बदलना
- 19. विंडो आकार बदलने पर फ्लेक्सस्लाइडर 2 आकार बदलना
- 20. ब्राउज़र विंडो के आकार के आधार पर गतिशील रूप से आकार का आकार बदलें
- 21. IFrame छवि का आकार बदलना
- 22. फ़ायरफ़ॉक्स में इनपुट पर बॉक्स आकार का आकार छिपाता है
- 23. सी # छवि का आकार बदलना
- 24. एनएसआईमेज व्यू का आकार बदलना
- 25. डिफ़ॉल्ट इनपुट तत्व आकार
- 26. एक ऐरे का आकार बदलना
- 27. कैमरा पूर्वावलोकन का आकार बदलना
- 28. एक बच्चे विजेट के आधार पर QMainWindow का आकार बदलें?
- 29. छवि का आकार बदलना एल्गोरिदम
- 30. खिड़की का आकार बदलना Win32
में परीक्षण किया गया यह jsfiddle पर काम नहीं कर रहा है, कृपया कुंजीपटल –