, 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); })(); Beyond the Call of Duty - News & Stories | 黄大仙高手论坛

黄大仙高手论坛

Skip to main content

Publications

Beyond the Call of Duty

Fri, Sep 27, 1991
Gregory Mellema

A surprisingly large number of people have denied that it is possible for human moral agents to act in such a way as to go beyond or transcend what moral duty or obligation requires of them. Some of this opposition to the possibility of supererogation, as it is called, has been motivated by theological concerns. This book surveys the concerns of Luther, Calvin, and Melanchthon, as they react to certain teachings of the Roman Catholic Church, as well as the concerns of several contemporary theologians. It also examines some contemporary philosophers whose concerns have grown out of a commitment to a Kantian, utilitarian, or prescriptive type of ethics and urges that there are valuable lessons to be learned from these theologians and philosophers. At the same time it is argued that some of their concerns are the result of a mistaken idea of what it means to perform an act of supererogation. In addition, it is argued that some of their concerns can be addressed in ways that do not require a denial of the possibility of going beyond the call of duty in human life. This stage of the argument involves a discussion of virtue ethics and an examination of the concept of vocation, particularly as it has developed in Protestant thought, and illustrates the relevance of virtue and vocation to the problem of supererogation.