告诉我,当用鼠标改变文本区域的大小时,是否可以跟踪其高度的变化?当然,也可以在鼠标悬停或类似操作时进行计算。但有没有更简单的选择呢?某种 getter 或 setter,属性观察器?
我用谷歌搜索了答案。
var $target = $('#descriptionLabel');
// Инициализация MutationObserver
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.attributeName === 'style') {
console.log('Обнаружено изменение стиля:', $target.attr('style'));
// Реагирование на смену стиля
}
});
});
// Конфигурация обозревателя: отслеживаем только изменения атрибута 'style'
var config = { attributes: true, attributeFilter: ['style'] };
// Запуск наблюдения
observer.observe($target[0], config);
我决定使用这样的可变高度:
// Наблюдатель textarea с id descriptionLabel.
var observer = new MutationObserver(styleChangedCallback);
observer.observe(document.getElementById('descriptionLabel'), {
attributes: true,
attributeFilter: ['style'],
});
// При изменении высоты textarea, меняется высота контейнера conteinerMainEditTask.
function styleChangedCallback(mutations) {
const newHeight = parseInt(mutations[0].target.style.height, 10);
const calculateHeight = globalHeightEditTask + newHeight;
if (calculateHeight >= globalHeightEditTask) {
console.log('globalHeightEditTask --> ' + calculateHeight);
$('.conteinerMainEditTask').css('height', calculateHeight);
}
}
你可以用 ResizeObserver 来实现