Javascript 两个容器之间的自定义造型线,可以像进度条一样更改颜色

Javascript 两个容器之间的自定义造型线,可以像进度条一样更改颜色,javascript,jquery,html,css,Javascript,Jquery,Html,Css,根据上图,我试图实现以下目标: 容器到达视口中间后,其文本背景将变为黄色 同时,当用户向下或向上滚动时,中间箭头将慢慢填充黄色,直到用户到达下一个容器的中间视口 现在,我设法使焦点容器将其文本背景更改为黄色,并且我已经显示了进度条形状,但我不知道如何在用户滚动动作(如进度条)中相对将其更改为黄色。另外,第一个进度条需要从右开始,而第二个进度条将从左开始,下一个进度条则相反。 p/S:我正在考虑只使用图像,但要确保它像进度条一样变为黄色是不可能的 $(文档).ready(函数(){ var wi

根据上图,我试图实现以下目标:

  • 容器到达视口中间后,其文本背景将变为黄色
  • 同时,当用户向下或向上滚动时,中间箭头将慢慢填充黄色,直到用户到达下一个容器的中间视口
  • 现在,我设法使焦点容器将其文本背景更改为黄色,并且我已经显示了进度条形状,但我不知道如何在用户滚动动作(如进度条)中相对将其更改为黄色。另外,第一个进度条需要从右开始,而第二个进度条将从左开始,下一个进度条则相反。

    p/S:我正在考虑只使用图像,但要确保它像进度条一样变为黄色是不可能的

    $(文档).ready(函数(){
    var winHeight=$(窗口).height(),
    topLimit=winHeight*.2;
    $(窗口).on('scroll',function(){
    $('.parent')。每个(函数(){
    var thisttop=$(this.offset().top-$(window.scrollTop();
    
    如果(thisTop有很多方法可以做到这一点。图像的透明部分。智能CSS使用边框颜色或简单的边距。我不确定什么是最好的,因为我们没有使用实际的代码,但在这一点上更多的是模拟

    考虑以下几点

    $(函数(){
    var winHeight=$(窗口).height(),
    topLimit=winHeight*.2;
    $(窗口).on('scroll',function(){
    $('.parent')。每个(函数(){
    var thisttop=$(this.offset().top-$(window.scrollTop();
    
    如果(thisTop有很多方法可以做到这一点。图像的透明部分。智能CSS使用边框颜色或简单的边距。我不确定什么是最好的,因为我们没有使用实际的代码,但在这一点上更多的是模拟

    考虑以下几点

    $(函数(){
    var winHeight=$(窗口).height(),
    topLimit=winHeight*.2;
    $(窗口).on('scroll',function(){
    $('.parent')。每个(函数(){
    var thisttop=$(this.offset().top-$(window.scrollTop();
    如果(这个顶部
    
    $(文档).ready(函数(){
    var winHeight=$(窗口).height(),
    topLimit=winHeight*.2;
    $(窗口).on('scroll',function(){
    $('.parent')。每个(函数(){
    var thisttop=$(this.offset().top-$(window.scrollTop();
    如果(这个顶部
    
    $(文档).ready(函数(){
    var winHeight=$(窗口).height(),
    topLimit=winHeight*.2;
    $(窗口).on('scroll',function(){
    $('.parent')。每个(函数(){
    var thisttop=$(this.offset().top-$(window.scrollTop();
    如果(此顶部文本背景更改)
    当文本到达视口中心时更改文本背景相对简单,可以通过一些经过深思熟虑构建的CSS类和少量JavaScript来完成

    主列表中的每个项目都有几个组件,包括几个需要更改背景颜色的文本框。我们为每个文本框添加一个类,称之为
    。color animate
    。在CSS中,我们添加一个
    transition
    属性,以使动画平滑淡出

    .colour-animate {
        transition: background-color 0.3s;
    }
    
    现在是JavaScript

    如果主列表中的每个项目都有类名
    。项目
    我们可以遍历
    项目
    的列表,并检查每个项目是否位于视口中心上方。这是一个简单的计算:

    if ( items[ i ].getBoundingClientRect().top < ( window.innerHeight / 2 ) ) {
        // do stuff
    }
    
    *{margin:0;padding:0;框大小:border-box;}
    身体{
    背景色:#111;
    填充:50px;
    }
    .项目{
    背景图片:网址(https://upload.wikimedia.org/wikipedia/en/f/f7/Leger_railway_crossing.jpg );
    背景尺寸:封面;
    位置:相对位置;
    显示器:flex;
    调整内容:灵活启动;
    利润率:40px自动;
    }
    .项目.对{
    证明内容:柔性端;
    }
    .项目.说明{
    宽度:33%;
    填充:30px;
    颜色:#fff;
    背景色:rgba(0,0,0,0.7);
    }
    .项目.标题{
    字体大小:150%;
    位置:绝对位置;
    排名:0;
    左:自动;
    右:0;
    填充:10px 50px;
    颜色:#fff;
    背景色:#000;
    }
    .item.header.left{
    左:0;
    右:自动;
    }
    .彩色动画{
    过渡:背景色0.3s;
    }
    
    标题1
    同一天,你可以坐在那里,成为一名优秀的足球运动员。你可以坐在那里,自由地坐在那里,自由地走

    标题2 同一天,你可以坐在那里,成为一名优秀的足球运动员。你可以坐在那里,自由地坐在那里,自由地走

    标题3 同一天,你可以坐在那里,成为一名优秀的足球运动员。你可以坐在那里,自由地坐在那里,自由地走

    标题4 同一天,你可以坐在那里,成为一名优秀的足球运动员。你可以坐在那里,自由地坐在那里,自由地走

    标题5 同一天,你可以坐在那里,成为一名优秀的足球运动员。你可以坐在那里,自由地坐在那里,自由地走

    文本背景更改 当文本到达视口中心时更改文本背景相对简单,可以通过一些经过深思熟虑构建的CSS类和少量JavaScript来完成

    主列表中的每个项目都有几个组件,包括几个需要更改背景颜色的文本框。我们为每个文本框添加一个类,称之为
    。color animate
    。在CSS中,我们添加一个
    transition
    属性,以使动画平滑淡出

    .colour-animate {
        transition: background-color 0.3s;
    }
    
    现在是JavaScript

    如果主列表中的每个项都有类名
    。item
    我们可以遍历
    项的列表和ch