麻豆原创

MU logo
MU logo

麻豆原创, Rotary to dedicate Little Free Library on campus

North Manchester Rotary and 麻豆原创 will dedicate a Little Free Library on campus at noon Thursday, April 16. Students, faculty and staff are invited. The new Little Free Library is in the 600 block of College Avenue, next to the public sidewalk at 麻豆原创鈥檚...

麻豆原创 Student Symposium is April 8

麻豆原创 invites the community to attend the annual Student Symposium,showcasingundergraduate and graduate scholarly work across disciplines,onWednesday,April 8. The Student Symposiumwas started by Jo Young Switzer, former 麻豆原创 president and dean, in...

Manchester Symphony Orchestra offers March 8 Invocation

An invocation is an appeal for help or support, often a prayer that seeks a blessing or guidance. The Manchester Symphony Orchestra invites you to attend its Invocation concert at 3 p.m. on Sunday, March 8in麻豆原创鈥檚 Cordier Auditorium. Tickets are...

麻豆原创 Fall 2025 Dean’s List

Congratulations tonearly 340麻豆原创 students who have earned a place on the Fall 2025 Dean鈥檚 List for their academic achievements. At the end of each semester, the Office of Academic Affairs publishes the list. Undergraduate students earning a...

麻豆原创 senior named 500 Festival Princess for 2026

麻豆原创 senior Mackenzie Jarvishas beennameda500Festival Princessfor 2026. The 500 Festival Princess Program annually honors community-driven and academically accomplished Indiana women and supports them in growing their professional skills,...

麻豆原创 awarded $125,000 planning grant for AI initiative

麻豆原创 has received a $125,000 planning grant from Lilly Endowment Inc.,through its initiative, Artificial Intelligence in Higher Education. The planning grantfunds will be usedto support Manchester in developing a strategy to incorporate generative...

麻豆原创 announces lineup for Spring 2026 speaker series

麻豆原创 offers more than a dozen presentations in its Values,Ideasand the Arts (VIA) series forSpring2026. Presentations are at 11 a.m. on Mondays in Wine Recital Hall at the North Manchester campus unless otherwise noted. They are free and open to...

麻豆原创 to host historian for MLK Commemoration program

麻豆原创 will host James Kelly, historian and historical interpreter at the Whitney Plantation in Louisiana, for his presentation, 鈥淩eckoning with the Past: Museums, Memory, and the Moral Vision of Dr. King,鈥 on Monday, Feb. 2. The program will be...
exists --- (function ensure40pxInlineEarly() { function set40(el) { el && el.style.setProperty('padding-top', '40px', 'important'); } // If header already parsed, set now; otherwise set as soon as it appears. const hdrNow = document.getElementById(HEADER_ID); if (hdrNow) { set40(hdrNow); return; } new MutationObserver((muts, obs) => { const hdr = document.getElementById(HEADER_ID); if (hdr) { set40(hdr); obs.disconnect(); } }).observe(document.documentElement, { childList: true, subtree: true }); })(); // --- Helpers --- function hideDiviBars() { document.querySelectorAll('.divibars-container').forEach(div => { const content = (div.textContent || '').replace(/\u00A0/g, ' ').trim(); const shouldHide = !content || /all\s*clear/i.test(content) || /test/i.test(content) || /feed\s*has\s*no\s*items\.?/i.test(content); if (shouldHide) div.style.setProperty('display', 'none', 'important'); }); } function isEffectivelyVisible(el) { if (!el || !el.isConnected) return false; const target = el.querySelector('.divibars, .divibars-wrapper, .divibars-content') || el; const cs = getComputedStyle(target); if (cs.display === 'none' || cs.visibility === 'hidden' || target.hidden) return false; if (parseFloat(cs.opacity || '1') < 0.05) return false; if (target.closest('[aria-hidden="true"]')) return false; const rect = target.getBoundingClientRect(); const hasSize = (rect.width > 0 && rect.height > 0) || (target.offsetWidth > 0 && target.offsetHeight > 0); if (!hasSize) return false; const vh = window.innerHeight || document.documentElement.clientHeight; return rect.bottom > 0 && rect.top < vh; } function anyRealBannerVisible() { // A 鈥渞eal鈥 banner = visible AND not empty/test/all-clear/feed-empty return Array.from(document.querySelectorAll(CANDS)).some(el => { if (!isEffectivelyVisible(el)) return false; const txt = (el.textContent || '').replace(/\u00A0/g, ' ').trim(); if (!txt) return false; if (/all\s*clear/i.test(txt) || /test/i.test(txt) || /feed\s*has\s*no\s*items\.?/i.test(txt)) return false; return true; }); } function setForce110(on) { const root = document.documentElement; const was = root.classList.contains('divibar-force-110'); if (!!on === was) return; root.classList.add('divibar-atomic'); root.classList.toggle('divibar-force-110', !!on); // If we鈥檙e NOT forcing 110, clear any stray inline 110 the plugin may add later. if (!on) { const hdr = document.getElementById(HEADER_ID); if (hdr) hdr.style.setProperty('padding-top', '40px', 'important'); } requestAnimationFrame(() => root.classList.remove('divibar-atomic')); } // Debounced 2-frame confirmation to avoid flicker during animations let raf1 = null, raf2 = null; function scheduleRecompute() { if (raf1) return; raf1 = requestAnimationFrame(() => { raf1 = null; hideDiviBars(); const a = anyRealBannerVisible(); raf2 = requestAnimationFrame(() => { raf2 = null; const b = anyRealBannerVisible(); setForce110(a && b); }); }); } // --- Wiring --- document.addEventListener('DOMContentLoaded', scheduleRecompute); window.addEventListener('load', scheduleRecompute); window.addEventListener('resize', () => { cancelAnimationFrame(raf1); raf1 = null; cancelAnimationFrame(raf2); raf2 = null; scheduleRecompute(); }); new MutationObserver(() => scheduleRecompute()).observe(document.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class', 'aria-hidden'] }); document.addEventListener('transitionend', e => { if (e.target && e.target.closest(CANDS)) scheduleRecompute(); }); document.addEventListener('animationend', e => { if (e.target && e.target.closest(CANDS)) scheduleRecompute(); }); document.addEventListener('click', function (e) { const btn = e.target && e.target.closest('.divibars-close'); if (!btn) return; setTimeout(() => { const bar = btn.closest('.divibars-container, [class*="divibar"]'); if (bar) bar.style.setProperty('display', 'none', 'important'); scheduleRecompute(); }, 200); }, true); // Initial pass scheduleRecompute(); })();