我很好奇如何创建一个 DIV(或任何真正的东西),当用户向下滚动页面时,我可以淡化(或改变不透明度)。此 DIV 将位于页面顶部,但只有在页面顶部时才能清晰可见。
此外,如果 II 可以让这个元素在鼠标悬停时淡出,这将是理想的,而不管页面上的当前滚动位置如何。
我很好奇如何创建一个 DIV(或任何真正的东西),当用户向下滚动页面时,我可以淡化(或改变不透明度)。此 DIV 将位于页面顶部,但只有在页面顶部时才能清晰可见。
此外,如果 II 可以让这个元素在鼠标悬停时淡出,这将是理想的,而不管页面上的当前滚动位置如何。
jQuery将允许一个简洁的解决方案,同时隐藏大多数浏览器差异。这是一个快速模型,可帮助您入门:
<script type="text/javascript">
//when the DOM has loaded
$(document).ready(function() {
//attach some code to the scroll event of the window object
//or whatever element(s) see http://docs.jquery.com/Selectors
$(window).scroll(function () {
var height = $('body').height();
var scrollTop = $('body').scrollTop();
var opacity = 1;
// do some math here, by placing some condition or formula
if(scrollTop > 400) {
opacity = 0.5;
}
//set the opacity of div id="someDivId"
$('#someDivId').css('opacity', opacity);
});
});
</script>
也可以看看:
我想我会尝试使用 scrollTop 的实际值来决定不透明度级别,从而获得平滑的淡入淡出。我还为第二部分添加了悬停状态。感谢大卫为我完善了数学。
//reduce the opacity of the banner if the page is scrolled.
$(window).scroll(function () {
var height = $("body").height();
var scrollTop = $("body").scrollTop();
var opacity = 1;
if(scrollTop < 41)
{opacity = 1-Math.floor(scrollTop)/100;}
else
{opacity = 0.6;}
$("#header").css("opacity", opacity);
$("#header").hover(function(){
$(this).css("opacity", 1);
},function(){
$(this).css("opacity", 0.6);
});
});
使用滚动事件,并分析 document.documentElement.scrollTop 的值来设置适当的不透明度。 http://www.quirksmode.org/dom/events/scroll.html