简体   繁体   English

滚动div颜色更改

[英]On scroll div colour change

Trying to change the colour of btns within a menu dependant on scroll according to the div.. but not working right.. Added a pic to help understand what im trying to do. 尝试根据div。滚动更改菜单中btns的颜色。但是无法正常工作。. 添加了一张图片,以帮助您了解我正在尝试执行的操作。

html menu btns: 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: 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: 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>

Is this what you are looking for - JS code: 这是您要寻找的-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/ https://jsfiddle.net/ashwyn/qudnauvq/

This is a modification to @MotaBOS's solution 这是对@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")
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM