经过多次实验和通过互联网搜索,我发现了一个基于 css 和 jQuery 的不错的解决方案。如果您将一个额外的 div 附加到正文,那么它的行为就像您的页面的不透明背景一样。div 使用以下样式:
CSS:
.background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAA0SURBVBhXY/wPBA6eZxnQwYHtxgyM9h5n/oMkQBwYgClmQpdA5oMlcQHCkugOgvEZ8bkWAHInGVYp48cTAAAAAElFTkSuQmCC);
/* These three lines are for transparency in all browsers. */
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
opacity:.5;
}
JavaScript:
$(document).ready(function () {
$('a').hover(function(){
$('.background').css('opacity',0.2);
}, function(){
$('.background').css('opacity','');
});
});
HTML 中的示例集成:
<body>
<div class="content">Content<a href="">Link</a></div>
<div class="background"></div>
</body>
完整的测试脚本在这里。