我有一个程序,这样如果用户在页面顶部附近滚动或向下滚动,我的顶级导航会有不同的样式:
/* Handle the changing of the top nav on page scroll */
window.onscroll = function ()
{
if ($(window).scrollTop() > 150) // 150 pixels from top triggers scrolling
{
$('.navbar-default').addClass('scrolling');
}
else
{
$('.navbar-default').removeClass('scrolling');
}
};
问题在于我意识到这是有效的,因为class
navbar-default
的{{1}}相对于调用onscroll
的次数被添加或删除了很少次。我还意识到我需要根据滚动是否发生来更改导航中的图像,所以我基本上会有
/* Handle the changing of the top nav on page scroll */
window.onscroll = function ()
{
if ($(window).scrollTop() > 150) // 150 pixels from top triggers scrolling
{
$('.navbar-default').addClass('scrolling');
$('.navbar-default .navvar-brand img').attr('src','image1.jpg');
}
else
{
$('.navbar-default').removeClass('scrolling');
$('.navbar-default .navvar-brand img').attr('src','image2.jpg');
}
};
这更加荒谬。如何熏蒸这个充满代码味道的房间?
答案 0 :(得分:0)
以下是一些建议:
使用css更改图片之间的切换,而不是根据nav-default
// Something like this...
.nav-default {
background-image: url('spriteimage.jpg');
background-repeat: no-repeat;
height: // height of first image here;
background-position: // position of first image here;
}
.nav-default.scrolling {
height: // height of second image here;
background-position: // position of second image here;
}
更高级的可能性:
(我个人不知道这是否会提升效果,但你可以尝试一下)