ইতিমধ্যে এখানে অনেক ভাল উত্তর আছে। মজা করার জন্য, আমি অন্যান্য উত্তর এবং আমার নিজের ধারণার উপর ভিত্তি করে নীচে এই সমাধানটি প্রয়োগ করেছি।
<input class="adjust">
ইনপুট উপাদান সঠিক পিক্সেল সামঞ্জস্য করা হয় এবং একটি অতিরিক্ত অফসেট সংজ্ঞায়িত করা যায়।
function adjust(elements, offset, min, max) {
offset = offset || 0;
min = min || 0;
max = max || Infinity;
elements.each(function() {
var element = $(this);
var id = btoa(Math.floor(Math.random() * Math.pow(2, 64)));
var tag = $('<span id="' + id + '">' + element.val() + '</span>').css({
'display': 'none',
'font-family': element.css('font-family'),
'font-size': element.css('font-size'),
}).appendTo('body');
function update() {
setTimeout(function() {
tag.html(element.val().replace(/ /g, ' '));
var size = Math.max(min, Math.min(max, tag.width() + offset));
if (size < max)
element.scrollLeft(0);
element.width(size);
}, 0);
};
update();
element.keydown(update);
});
}
adjust($('.adjust'), 10, 100, 500);
সামঞ্জস্যটি সিএসএস রূপান্তর দিয়ে ধীরে ধীরে পায়।
.adjust {
transition: width .15s;
}
এখানে বেহালার । আমি আশা করি এটি পরিষ্কার সমাধান খুঁজতে অন্যকে সহায়তা করতে পারে।