, 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); })(); Twister teachings - News & Stories | 麻豆区

麻豆区

Skip to main content

Spark

Twister teachings

Wed, Jun 15, 2016

It鈥檚 only a matter of time until a聽tornado hits a major city, according聽to Fred Haan 鈥92, associate聽professor of mechanical engineering聽at Rose-Hulman University.

In the meantime, Haan, a tornado and wind storm expert, is working聽to reduce the damage and death toll of such an occurrence.

鈥淲e need to know tornado velocities near the ground,鈥 he said. 鈥淚f we knew the wind speed, we could prevent deaths by building stronger hospitals, schools and homes, but tornadoes rarely run over existing wind-speed instrumentation.鈥

Currently, most tornado wind-speed estimates come from damage聽assessment rather than wind-speed聽instrumentation. Haan鈥檚 research seeks to obtain more exact wind-speed data from vehicle motion. 鈥淰ehicles are plentiful in tornado damage zones,鈥 he said.

Using his tornado simulator, Haan聽is researching the peak wind speed聽necessary to cause vehicle sliding, flipping and lifting.聽

These data will help in the development of better building designs that will keep roofs on structures and structures attached to their foundations, even during powerful winds and upward suction created by tornadoes. Haan said stronger connections between building components鈥攐ften in the form of聽relatively inexpensive clips and聽brackets鈥攎ake a significant difference in keeping structures intact during wind storms. He said 90 percent of聽tornadoes are rated EF2 or lower and that wind speeds in those tornadoes聽are comparable to what engineers already design for in hurricane regions.聽

鈥淭he more tools that we have to聽estimate wind speeds near the ground,鈥 he said, 鈥渢he better our聽ability to design safer structures.鈥