2016-07-08 11 views
0

スクロールに依存するメニュー内のbtnの色をdivに応じて変更しようとしましたが、正しく動作しません。Added a pic何をしようとしているのかを理解するのに役立ちます。スクロールdivの色変更時

のhtmlメニューbtns:

<div class="left-bar-preview"> 
    <div class="image mini-sub"><img class="icon-image" src="../images/human.svg" width="42"> 
    </div> 
    <a class="mini-sub w-inline-block" href="#" id="name-btn"> 
     <div></div> 
    </a> 
    <a class="mini-sub w-inline-block" href="#" id="style-btn"> 
     <div></div> 
    </a> 
    <a class="mini-sub w-inline-block" href="#" id="position-btn"> 
     <div></div> 
    </a> 
    <a class="mini-sub w-inline-block" href="#" id="information-btn"> 
     <div></div> 
    </a> 
    <a class="mini-sub w-inline-block" href="#" id="budget-btn"> 
     <div></div> 
    </a> 
    <a class="mini-sub w-inline-block" href="#" id="photos-btn"> 
     <div></div> 
    </a> 
    </div> 

HTMLのdiv:

<div class="name preview-content w-clearfix" data-ix="on-scroll-light-up" id="name-div"> 
    <h4 class="field-box spacing"><strong>Name</strong></h4> 
    <h4>My new tattoo</h4> 
    </div> 
    <div class="name preview-content w-clearfix" id="style-div"> 
    <h4 class="field-box spacing"><strong>Style</strong></h4> 
    <h4>Heading</h4> 
    </div> 
    <div class="name preview-content w-clearfix" id="position-div"> 
    <h4 class="field-box spacing"><strong>Position on body</strong></h4> 
    <h4>Black &amp; White</h4> 
    </div> 
    <div class="name preview-content w-clearfix" id="side-div"> 
    <h4 class="field-box spacing"><strong>Side</strong></h4> 
    <h4>Right</h4> 
    </div> 
    <div class="name preview-content w-clearfix" id="information-div"> 
    <h4 class="field-box spacing"><strong>Brief</strong></h4> 
    <h4>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."<br>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."<br>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."</h4> 
    </div> 
    <div class="name preview-content w-clearfix" id="budget-div"> 
    <h4 class="field-box spacing"><strong>Budget</strong></h4> 
    <h4>$200-$400</h4> 
    </div> 
    <div class="name preview-content w-clearfix" id="photos-div"> 
    <h4 class="field-box spacing"><strong>Photos</strong></h4> 
    </div> 
</div> 

のjavascript:

<script> 
$(window).scroll(function(){; 
    w = Math.floor($(window).scrollTop()); 
    $('.mini-sub').css('background-color', ''); 
    if(w<=$("#name-div").offset().top){ 
     $("#name-btn").css('background-color', '#972663'); 
    }else if(w<=$("#style-div").offset().top){ 
     $("#style-btn").css('background-color', '#972663'); 
    }else if(w<=$("#position-div").offset().top){ 
     $("#position-btn").css('background-color', '#972663'); 
    }else if(w<=$("#information-div").offset().top){ 
     $("#information-btn").css('background-color', '#972663'); 
    }else if(w<=$("#budget-div").offset().top){ 
     $("#budget-btn").css('background-color', '#972663'); 
    }else{ 
     $("#photos-div").css('background-color', '#972663'); 
     } 

}); 
</script> 
+0

への変更は、あなたにもフィドルを作成してもらえますか? –

+0

SOスニペットエディタを使用します。そうすれば、インラインフィドルを作成することができます。 – evolutionxbox

+0

https://jsfiddle.net/scoe1grt/ @Krishnakumar_Muraleedharan 私はその場でこのような –

答えて

1

これはあなたが探しているものです - JSコード:

$(".right").scroll(function(){ 
var st = $(this).scrollTop(); 
if(st <= 50){ 
    $(".A").css("color", "red") 
} 
else if(st <= 100){ 
    $(".B").css("color", "red") 
} 
else if(st <= 150){ 
    $(".C").css("color", "red") 
} 
}); 

https://jsfiddle.net/ashwyn/qudnauvq/

+1

もっと何か行うことができる最高: http://jsfiddle.net/anthonypagaycarbon/1pdq2van/ カントはそれが –

+0

かかわらず飛ぶことを得るをこれはピクセル値なしで行うことができますか? –

0

これはMotaBOSのソリューション@

$(".right").scroll(function(){ 
var st = $(this).scrollTop(); 
    $(".left span").css("color", "black") 
if(st <= 50){ 

    $(".A").css("color", "red") 
} 
else if(st <= 100){ 
    $(".B").css("color", "red") 
} 
else { 
    $(".C").css("color", "red") 
} 
+0

ありがとうございますが、divによってサイズが変わる可能性があるので、ピクセル単位で決定することはできません。私はidによってそれを行う方法があると思いましたか? –

関連する問題