固定位置,在某些高度显示/隐藏

时间:2014-08-28 16:28:47

标签: javascript jquery html css

我正在使用脚本来显示"并且"隐藏"网站上某些位置的元素。我不喜欢这样一个事实,即我依靠设定的位置,并希望有一些更有活力的东西。如果用户调整窗口大小,例如此脚本将停止工作..

$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 1200) {
    $('#red-box-what').css('display', 'block');
} else {
    $('#red-box-what').css('display', 'none');
}
if (scroll >= 2510) {
    $('#red-box-work').css('display', 'block');
} else {
    $('#red-box-work').css('display', 'none');
}
console.log(scroll);
})


});     
})( jQuery );

供参考,网站为:http://www.littlestarmedia.com/alpha/

使用此脚本的部分是"我们做什么"和"与我们合作" (标题用红色框括起来。)

任何有关更改此脚本的指导都将受到赞赏......

1 个答案:

答案 0 :(得分:1)

这是一个动态解决方案。当ROI div的顶部点击浏览器的顶部时,它会更改站点的背景颜色。我希望你能够建立在这个想法的基础上:

的jsfiddle: http://jsfiddle.net/seibert_cody/sng9emjp/1/

HTML:

<div class="section"></div>     
    <div id="red" class="roi"></div>
<div class="section"></div>
    <div id="green" class="roi"></div>
<div class="section"></div>
    <div id="blue" class="roi"></div>
<div class="section"></div>
    <div id="yellow" class="roi"></div>

JS:

$(document).ready(function(){  
    var ROI = function($div, color){
        this.$div = $div;
        this.color = color;
    }

    var rois = [
        new ROI($("#red"), "red"),
        new ROI($("#green"), "green"),
        new ROI($("#blue"), "blue"),                
        new ROI($("#yellow"), "yellow")
    ];

    $(window).scroll(function() {
        var scroll = $(window).scrollTop(); 

        $.each(rois, function(index, roi){
            var $div = roi.$div;
            var color = roi.color; 
            if (scroll > $div.position().top){
                $("body").css("background-color", color);
            }
        }); 
    });

});

CSS:

body{
    height: 5000px;
}

.section{
    height: 400px;
}

.roi{
    height: 50px;
    border: 1px solid black;
}

#red{
    background-color: red;
}

#green{
    background-color: green;    
}

#blue{
    background-color: blue; 
}

#yellow{
    background-color: yellow;   
}