当进度条在后台传递时,更改svg的填充

时间:2014-10-04 01:16:12

标签: jquery svg fill

当用户向下滚动超过100个像素时,我有一个进度条。进度条的背景填充红色。进度条容器还包含一个白色的树的svg。

当进度条在其后面传递时,如何更改svg的填充颜色。因此,如果进度条位于树的后面一半,则左半部分为白色,右半部分仍为红色。这甚至可能吗?我目前正在使用jQuery。

我在这里嘲笑了一支快笔:http://codepen.io/redbranchmedia/pen/aGfme

以下是我用于进度条的脚本:

  // fills progress bar on scrolldown 

jQuery(document).on('ready', function() {  
  var winHeight = $(window).height(), 
      docHeight = $(document).height(),
      progressBar = $('progress'),
      max, value;

  /* Set the max scrollable area */
  max = docHeight - winHeight;
  progressBar.attr('max', max);

  jQuery(document).on('scroll', function(){
     value = $(window).scrollTop();
     progressBar.attr('value', value);
  });
});
// end progress bar

1 个答案:

答案 0 :(得分:1)

你快到了。这是一个使用白树后面的红树的动画技巧。因此,当白树被取消屏蔽时,会出现红色树。

Earlier revision回答了SO问题,但不是100%像素精确,各种窗口宽度和窗口缩放(可能可以通过更多的数学运算来修复它)。因此,下面是这个新的更新。

更新:使用渐变逐渐将其变为白色的新codepen示例。如果您希望稍后变为白色,请调整0.1中的值(max*0.1)