JS实现星级评价

说明:

  本方法采用了Jquery库,暂时检测兼容IE8版本。本示例的2种颜色的星星都是放入了一张png图片当中,当然还有其他的一些实现思路。本示例展示的情况是当前页面只有一个星级评价的情况。

思路:

  通过对星级显示元素的,mouseenter,mouseout,click 三个事件的监听,从而星星显示的个数。其中我用了2个变量(temp_value,choice_value)来存放当前选定星级的值和当前临时的星级值;

  •    temp_value : 临时的星级值;
  • choice_value : 选择的星级值;
  •    mouseenter : 鼠标移入,获取当前所在的星星级别赋予temp_value,调整当前星星的图片颜色;
  •    mouseout : 鼠标移除,通过对比choice_value值,重新调整星星图片颜色;
  • click : 鼠标单击后,获取当前的星级值,赋值给choice_value;(注意在click前已经进行过mouseenter事件了,click后进行了mouseout事件了)
  • 当完成选定值后,在需要提交评价值的时候,可以通过JS去获取变量choice_value的值;

HTML结构代码:

复制代码
    <h1>评价:</h1>
    <ul id="star">
        <li title="很差" id="star1" star="1"></li>
        <li title="差" id="star2" star="2"></li>    
        <li title="一般" id="star3" star="3"></li>
        <li title="好" id="star4" star="4"></li>
        <li title="很好" id="star5" star="5"></li>
    </ul>
复制代码

注:如果页面中不止一个星级评价,也就是出现多行的情况,这个时候只需要对Dom中li的id进行一些改造,加上动态的下标,从而区分不同的元素。另外有个点就是,我把选定的星级值放入的是JS变量中去了,多个评价值的情况下,建议可以在Dom中加上隐藏表单域去存放选定的当前星级值。

JS实现代码:

复制代码
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">

        $(document).ready(function() {

            var _temp_value = 0,//鼠标hover时的等级value
                choiceValue = 0;//默认选定的等级值为1

            //鼠标移入的时候
            $("#star li").mouseenter(function() {
                //获取当前的星级
                _temp_value = new Number($(this).attr("star"));
                showStar();

            //鼠标移入的时候
            }).mouseout(function(){
                hideStar();

            //鼠标移入的时候
            }).click(function(){
                //单击时,设定当前的选定值
                choiceValue = _temp_value;
        hideSatr();   });
//星级显示 function showStar() { for (var i = 1 ; i < _temp_value+1; ++i) { $("#star"+i).addClass("choice"); } } function hideStar() { for (var i = 5 ; i > choiceValue; --i) { $("#star"+i).removeClass("choice"); } } }); </script>
复制代码

如有问题,请联系我!这里是Demo地址:http://xiaoweijs.duapp.com/demo/star-level/index.html

作者:Ziv小威
出处:http://www.cnblogs.com/zivxiaowei/
关于作者:专注于Java技术的程序员一枚,此外对JS开发保持着较高的兴趣。爱好音乐,阅读,FM等等。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
如有问题,可以邮件:wewoor@foxmail.com
微博:Ziv小威

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在uni-app中实现星级评价,你可以使用uni-app自带的组件或者自定义组件来实现。以下是一种常见的实现方式: 1. 创建一个星级评价的组件,可以命名为StarRating.vue。 2. 在StarRating.vue中,使用`<view>`或者`<div>`标签来布局星星图标,并设置合适的样式和大小。 3. 在StarRating.vue中,使用`for`循环来渲染星星图标,根据评价的分数来判断是否高亮显示星星。可以使用`v-for`指令来循环渲染星星图标,如: ```html <template> <view> <view v-for="index in totalStars" :key="index" @click="selectStar(index)"> <image :src="index <= currentStar ? 'active_star_icon.png' : 'inactive_star_icon.png'" /> </view> </view> </template> ``` 4. 在StarRating.vue中,定义一个`currentStar`变量来表示当前选中的星星数。初始值可以根据需求设置,默认为0。 5. 在StarRating.vue中,定义一个`selectStar`方法来处理点击事件,根据点击的星星数来更新`currentStar`的值。例如: ```javascript <script> export default { data() { return { totalStars: 5, // 总共的星星数 currentStar: 0 // 当前选中的星星数 }; }, methods: { selectStar(star) { this.currentStar = star; } } }; </script> ``` 6. 将StarRating组件引入到需要使用星级评价的页面中,使用`<star-rating />`标签来调用。如: ```html <template> <view> <star-rating></star-rating> </view> </template> <script> import StarRating from '@/components/StarRating.vue'; export default { components: { StarRating } }; </script> ``` 通过以上步骤,你就可以在uni-app中实现星级评价功能了。根据需要,你还可以添加其他样式和交互效果来美化和增强用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值