【问题标题】:Twitter Bootstrap rtl rating starsTwitter Bootstrap rtl 评级星星
【发布时间】:2012-04-26 00:42:45
【问题描述】:

我正在使用 twitter bootstrap 来构建我的网站 UI。

我想创建一个星级评分页面。

我希望它是从右到左(意味着一颗星选择在右边)

我认为我最好的选择是使用 Jquery-UI 插件,因为 bootstrap 没有这样的工具?

如何制定评分方向:rtl?

另外,如何将星星调整为黄色而不是红色

(悬停时和选择后)?

【问题讨论】:

    标签: jquery asp.net-mvc user-interface twitter-bootstrap


    【解决方案1】:

    我也使用引导程序。今天早上,我开始查看星级评分,发现了FontAwesome 网站。在这里,您将找到引导程序中星级评级的工作示例。

    CSS-tricks 站点提供了所需的 CSS,并很好地解释了它在做什么。

    对于下面缺少链接,我深表歉意。由于我是 stackoverflow 上的“新海报”,我只能包含两个超链接。因此,您需要将要点粘贴到 dabble.com 的 URL 中才能看到它们。(请有人投票支持我的声誉,以便我可以发布更多链接 :)

    您可以在 dabblet.com 网站上找到工作示例,在将其引入您的 cown 代码库之前对其进行一些操作。 css-tricks dabblet 位于https://gist.github.com/1709019 .

    您可能还想查看其他几个 dabblets:

    @chriscoyier 在 https://gist.github.com/1718992 .在此实现中,您可以通过更改 float:right; 从 LTR 更改为 RTL;浮动:向左;

    @mprogano 在https://gist.github.com/1712123 上有一个更简洁的版本。您可以使用方向从 LTR 更改为 RTL:rtl;

    一些涉猎示例允许您更改星形颜色,其他示例使用图像,因此您必须创建自己的图像来更改颜色。

    希望这会有所帮助。

    【讨论】:

    • 我更喜欢@chriscoyier 的解决方案,因为它使用真实的输入字段,因为它们是要使用的,所以不需要额外的 JS 绑定。不过要指出的一件事:在 dabblet.com HTML 代码中,需要颠倒输入字段的顺序才能将标签链接到正确的单选按钮(现在单击第 4 颗星实际上会选择星号- 2 单选按钮)。标签是反转的,因为它们是右浮动的。
    【解决方案2】:

    得到了一些启发,并尝试了一些类似“更少代码”的东西。还添加了一个js函数来提醒选择的星星数量(当然可以很容易地改变它来做一些更花哨的事情)。

    http://jsfiddle.net/RpfLa/135/

    <div class="star-rating"><s><s><s><s><s></s></s></s></s></s></div>
    <div class="star-rating-rtl"><s><s><s><s><s></s></s></s></s></s></div>
    

    玩得开心!

    编辑:另请参阅http://jsfiddle.net/RpfLa/400/ 了解预设评级。

    <s class="rated"></s>
    

    【讨论】:

    • 太棒了!非常简洁的代码!你能告诉我点击后如何让星星突出显示吗? (即。如果我给 3 星评级;应该填写 3 星)如果你能帮我解决这个问题,那就太好了。感谢您发布的 jsfiddle,它真的很有帮助
    • 谢谢!一种方法是在正确的星数上设置 class="active",如下所示:jsfiddle.net/RpfLa/400 另一种方法是在父元素上设置 class="rating-3star",但这需要更多的 CSS完成同样的事情。
    • 太棒了!感谢您的快速答复!我当然可以使用您的代码来完成我想要完成的工作,非常有用。一个重要的问题:为什么要像这样嵌套 标签?我仔细检查后发现它很奇怪
    • 没问题。嵌套使所有星星在最后一个悬停时触发它们的 :hover。
    • 这个评级系统的工作很棒,我在单个页面中有多个元素时遇到了一个小问题,我决定在对项目进行评级后用文本表示替换星星评级就像小提琴中的警报一样。为此并允许页面上有多个评分元素,我只需将 alert JS 替换为 $(this).replaceWith(numStars + (numStars == 1 ? " star" : " stars!"));
    【解决方案3】:

    这是一个简单的纯 CSS 解决方案,用于为 twitter bootstrap 的字体图标评分。要与任何其他字体图标(如 fontawesome 等)一起使用,只需更改 HTML 中的类名

    HTML:

    <div class="rating"
      <span id="5" class="glyphicon glyphicon-star"></span>
      <span id="4" class="glyphicon glyphicon-star"></span>
      <span id="3" class="glyphicon glyphicon-star"></span>
      <span id="2" class="glyphicon glyphicon-star"></span>
      <span id="1" class="glyphicon glyphicon-star"></span>
    </div>
    

    CSS:

    .rating span {
      font-size: 25px;
      cursor: pointer;
      float: right; //remove 'float right' for right to left
    }
    .rating span:hover, .rating span:hover ~ span{
      color: red; //gold or any other color 
    }
    

    Jquery 获取点击评分

    $('.rating span').click(function(){
        alert($(this).attr('id'));
    })
    

    这里是working code

    【讨论】:

    • “rtl”部分在哪里
    • 'rtl' 是'从右到左',由上面提到的 .rating span 中的 float 属性控制...
    • 如何包含一个表单来发布评分?
    【解决方案4】:

    前段时间我遇到了同样的问题,最后创建了一个小插件。我最近为 Bootstrap 3 更新了它:

    https://github.com/javiertoledo/bootstrap-rating-input

    欢迎您发送反馈或拉取请求 :-)

    最好的问候!

    【讨论】:

    • 完全符合需要,并具有 RTL 支持。非常感谢,只需要更改一些类以使其与 Bootstrap 3 兼容,现在它可以正常工作了。
    • 太棒了,我有兴趣查看 Bootstrap 3 中的失败之处以及您需要做的更改,如果您提交 PR,我会查看并修复小部件以供将来发布。谢谢!
    • 我最诚挚的道歉,实际上我的意思是说,我不得不调整以使其与 bootstrap 2.xx 兼容,反之亦然.. 该死的昨晚宿醉......:D跨度>
    【解决方案5】:

    考虑到各种插件面临的问题 - 这是我使用各种可配置选项创建的Bootstrap JQuery Star rating plugin(其中包含场景演示)。其中一些灵感来自各种想法(例如 Victor)和其他用户需求。我认为您可以针对您提到的场景尝试此操作并告知。

    尽可能使用 Bootstrap 3.x 字形图标和纯 CSS,包括 RTL 支持,支持插件事件和方法。可以参考source here

    编辑:该插件现在支持分数星级评分,并且还提供了一些其他增强功能。

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多