Initial commit
This commit is contained in:
57
js/messageLabo.js
Normal file
57
js/messageLabo.js
Normal file
@@ -0,0 +1,57 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var messageList = document.querySelector('.messages-list');
|
||||
var agendaContent = document.querySelector('.agenda-content');
|
||||
var sectionTitle = document.querySelector('.message-du-labo .section-title');
|
||||
var buttonMessages = document.querySelector('.button-messages');
|
||||
if (!messageList || !agendaContent) return;
|
||||
|
||||
var items = Array.from(messageList.querySelectorAll('.message-item'));
|
||||
|
||||
function sync() {
|
||||
items.forEach(function (item) {
|
||||
item.style.display = '';
|
||||
var content = item.querySelector('.message-content');
|
||||
if (content) { content.style.maxHeight = ''; content.classList.remove('is-overflowing'); }
|
||||
});
|
||||
|
||||
if (window.innerWidth < 768) {
|
||||
// Mobile : afficher uniquement le premier message
|
||||
items.forEach(function (item, i) { item.style.display = i === 0 ? '' : 'none'; });
|
||||
return;
|
||||
}
|
||||
|
||||
var budget = agendaContent.offsetHeight
|
||||
- (sectionTitle ? sectionTitle.offsetHeight : 0)
|
||||
- (buttonMessages ? buttonMessages.offsetHeight : 0);
|
||||
var used = 0;
|
||||
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i];
|
||||
var itemHeight = item.offsetHeight;
|
||||
if (used + itemHeight <= budget) {
|
||||
used += itemHeight;
|
||||
} else {
|
||||
var remaining = budget - used;
|
||||
var content = item.querySelector('.message-content');
|
||||
if (content && remaining > 100) {
|
||||
var contentBudget = remaining - (itemHeight - content.offsetHeight);
|
||||
if (contentBudget > 60) {
|
||||
content.style.maxHeight = contentBudget + 'px';
|
||||
content.classList.add('is-overflowing');
|
||||
} else {
|
||||
item.style.display = 'none';
|
||||
}
|
||||
} else {
|
||||
item.style.display = 'none';
|
||||
}
|
||||
for (var j = i + 1; j < items.length; j++) {
|
||||
items[j].style.display = 'none';
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sync();
|
||||
window.addEventListener('resize', sync);
|
||||
});
|
||||
Reference in New Issue
Block a user