, but this code // executes before the first paint, when

麻豆区

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); SAO welcomes new director - News & Stories | 麻豆区

麻豆区

Skip to main content

Spark

SAO welcomes new director

Wed, Apr 01, 2020

The Student Activities Office (SAO) welcomes a new director in 2020. Jack Droppers, a working musician and scholar, takes over a role that Ken Heffner built and held for nearly 27 years. Like Heffner did in 1993, Droppers felt called to this work of engaging popular culture boldly and doing so with Christ-centered conviction.

鈥淏eing in a band helps shape my experience as someone who books shows because there鈥檚 an understanding that in order to put on a good show as a band, it鈥檚 essential to have a good audience,鈥 said Droppers. 鈥淪o, how do we curate audiences so that they provide an experience for the artist where it鈥檚 more of a conversation and less of just pure entertainment?鈥

Droppers knows that Heffner and SAO鈥檚 approach to this work over the years provides a great model for how to do that well, and he鈥檚 excited for the opportunity to build on this solid foundation.

Droppers earned a master of divinity from Western Theological Seminary. He is in a PhD program through the University of Aberdeen in Scotland studying how both music and movies portray suffering and what that says about our relationship with God in the midst of pain.