CSS过渡可以用于允许文本段落在页面加载时淡入吗?
我真的很喜欢它的外观,并希望通过CSS使用类似的效果。此域已购买,不再具有上述作用。可以在WaybackMachine上查看已归档的副本。
具有此标记:
<div id="test"> <p>This is a test</p> </div>
使用以下CSS规则:
#test p { opacity: 0; margin-top: 25px; font-size: 21px; text-align: center; -webkit-transition: opacity 2s ease-in; -moz-transition: opacity 2s ease-in; -o-transition: opacity 2s ease-in; -ms-transition: opacity 2s ease-in; transition: opacity 2s ease-in; }
如何在负载上触发转换?
如果您正在寻找一个自我调用的过渡,那么您应该使用CSS 3 Animations。它们也不被支持,但这恰恰是它们的目的。
#test p { margin-top: 25px; font-size: 21px; text-align: center; -webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */ -moz-animation: fadein 2s; /* Firefox < 16 */ -ms-animation: fadein 2s; /* Internet Explorer */ -o-animation: fadein 2s; /* Opera < 12.1 */ animation: fadein 2s; } @keyframes fadein { from { opacity: 0; } to { opacity: 1; } } /* Firefox < 16 */ @-moz-keyframes fadein { from { opacity: 0; } to { opacity: 1; } } /* Safari, Chrome and Opera > 12.1 */ @-webkit-keyframes fadein { from { opacity: 0; } to { opacity: 1; } } /* Internet Explorer */ @-ms-keyframes fadein { from { opacity: 0; } to { opacity: 1; } } /* Opera < 12.1 */ @-o-keyframes fadein { from { opacity: 0; } to { opacity: 1; } }
所有现代浏览器和Internet Explorer 10(及更高版本)
另外,您可以使用jQuery(或普通的JavaScript;请参见第三个代码块)在加载时更改类:
$("#test p").addClass("load");
#test p { opacity: 0; font-size: 21px; margin-top: 25px; text-align: center; -webkit-transition: opacity 2s ease-in; -moz-transition: opacity 2s ease-in; -ms-transition: opacity 2s ease-in; -o-transition: opacity 2s ease-in; transition: opacity 2s ease-in; } #test p.load { opacity: 1; }
document.getElementById("test").children[0].className += " load";
或者,您可以使用 .Mail 使用的方法:
$("#test p").delay(1000).animate({ opacity: 1 }, 700);
#test p { opacity: 0; font-size: 21px; margin-top: 25px; text-align: center; }
jQuery 1.x :所有现代浏览器和Internet Explorer6(及更高版本) jQuery 2.x :所有现代浏览器和Internet Explorer 9(及更高版本)
此方法是最兼容的方法,因为目标浏览器不需要支持CSS 3过渡 或 动画。