使用 CSS 控制额定填充率

Posted

技术标签:

【中文标题】使用 CSS 控制额定填充率【英文标题】:Controling RatedFill in RateYo using CSS 【发布时间】:2018-01-28 10:04:30 【问题描述】:

我在我的应用程序中使用了一个很棒的小 jQuery 插件 RateYo。

它使用 SVG 作为创建星星的方法,这显然是对使用图像的传统方法的巨大改进,但它似乎阻止了使用 CSS 来控制评级星星的颜色。

因此您可以轻松地执行以下操作:

$("#rateYo").rateYo(
    normalFill: "#A0A0A0",
    ratedFill: "#F39C12"
);

但是出于显而易见的原因,我想通过 CSS 而不是 javascript 来控制这些参数。

我尝试了一些简单的东西,比如

.rating svg 
    fill: $blue3;

这确实改变了星星的颜色,但它也阻止了控件正常运行,因为它将所有星星的颜色固定为 CSS 中提供的填充颜色。

那么,任何人都可以就我如何通过 CSS 而不是 JavaScript 来控制 ratedFill 参数提供任何建议吗?

【问题讨论】:

【参考方案1】:

通过检查 RateYo 创建的标记,您可以找到相关的类并定位它们。

这是一个活生生的例子:

$(function() 
  $(".rating").rateYo(
    rating: 2.5
  );
);
.rating .jq-ry-normal-group svg 
  fill: silver;


.rating .jq-ry-rated-group svg 
  fill: blue;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.css">

<div class="rating"></div>

【讨论】:

伴侣,你是一个绝对的传奇。我错过了有两个单独的容器,一个用于普通星星,一个用于额定星星。衷心感谢您的帮助!我会尽快奖励赏金... @MaximGershkovich 非常乐意提供帮助! :)【参考方案2】:

我还添加了其他选项以提高答案的实用性。

$(".rateyo").rateYo();
#rateyo1 .jq-ry-normal-group svg 

   fill:purple;
  stroke:lime;
  stroke-width:20;



#rateyo1 .jq-ry-rated-group svg 

  fill:lime;
  stroke:purple;
  stroke-width:20;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.css" rel="stylesheet"/>
<div>
    <div id="rateyo1" class="rateyo"
         data-rateyo-rating="1.5"
         data-rateyo-num-stars="5">
    </div>
</div>

【讨论】:

以上是关于使用 CSS 控制额定填充率的主要内容,如果未能解决你的问题,请参考以下文章

分数阶pid控制和矢量控制永磁电机

[激光器原理与应用-9]: 开关电源主要指标

如何将引导表单控制填充设置为 0 px

机电传动控制第四周作业

机电传动控制学习笔记3

x264的码率控制