javascript - 我怎样才能在这个 js 中更改鼠标悬停时星星的颜色???

标签 javascript html css

我从 http://nofunc.org/AJAX_Star_Rating/ 得到了一个星级 js

此 js 仅适用于两种颜色,红色和蓝色。 当一个人将鼠标移到星星上时,原始评级会被隐藏,鼠标移动时会显示新评级,即如果我们将鼠标移到星星上,除非我们将鼠标从星星上移开,否则我们将看不到原始评级。 我想要的是,当一个人移动他的鼠标时,原始评级应该以某种浅色显示,而我们正在做的应该以深色显示(而不是红色,因为它是固定评级显示的颜色),一旦我们修复它然后它应该以相同的红色和蓝色显示。 我现在该怎么做?我厌倦了玩 css 和 js 但它没有帮助,因为我不是很擅长:( 非常感谢您的帮助!!

附言 请不要建议一些大的 js,因为我不能为他们去...我需要一个尽可能小的 js 来进行这个评级,这就是为什么我选择这个 nofunc js.....

最佳答案

试试这个。这就是我为网站所做的

html代码

<div id="rating">
    <div id="star1">
        <img src="images/on.png" alt="1"/>
    </div>
    <div id="star2">
        <img src="images/on.png" alt="2"/>
    </div>
    <div id="star3">
        <img src="images/on.png" alt="3"/>
    </div>
    <div id="star4">
        <img src="images/on.png" alt="4"/>
    </div>
    <div id="star5">
        <img src="images/on.png" alt="5"/>
    </div>
</div>
<input type="hidden" name="ratingval" id="ratingval" value="0" />

js脚本

$(document).ready(function(){
    stars = ['off','off','off','off','off','off'];  
    clearRating();

    $('#star1 img').click(function(){ rateTheStar(1);});
    $('#star2 img').click(function(){ rateTheStar(2);});
    $('#star3 img').click(function(){ rateTheStar(3);});
    $('#star4 img').click(function(){ rateTheStar(4);});
    $('#star5 img').click(function(){ rateTheStar(5);});
});


// Bl holder functions 

function clearRating()  {
    count = 1;
    for(count = 1; count <= 5; count++) {
        strTarget = '#star'+count+' img';
        $(strTarget).animate({'opacity':0});
    }
}

function rateTheStar(targetno)  {
        if(stars[targetno] == 'off')    {

            target = '';
            i = 0;
            j = 0;

            for(j = 1; j <= targetno; j++)  {
                target = '#star'+j+' img';
                stars[j] = 'on';
                $(target).animate({'opacity':1},'slow');
            }
            document.getElementById('ratingval').value = targetno;
            for(i = targetno+1; i <= 5; i++)    {
                str = '#star'+i+' img';
                $(str).animate({'opacity':0},'slow');
            }
            //alert(stars[1]+" "+stars[2]+" "+stars[3]+" "+stars[4]+" "+stars[5]);
        }
        else if(stars[targetno] == 'on')    {
            document.getElementById('ratingval').value = targetno;
            i = 0;
            newTargetNo = targetno + 1;
            for(i = newTargetNo; i <= 5; i++)   {
                str = '#star'+i+' img';
                stars[i] = 'off';
                $(str).animate({'opacity':0},'slow');
            }
        }
    }

CSS文件

#rating {
    width:120px;
    height:34px;
    display:inline;
    overflow:hidden;
    display:block;
}

#rating img {
    background-image:url(../images/off.png);
}


#star1  {
    width:20px;
    height:32px;
    float:left;
    background-image:url(../images/off.png);
}

#star2  {
    width:20px;
    height:32px;
    float:left;
    background-image:url(../images/off.png);
}

#star3  {
    width:20px;
    height:32px;
    float:left;
    background-image:url(../images/off.png);
}

#star4  {
    width:20px;
    height:32px;
    float:left;
    background-image:url(../images/off.png);
}

#star5  {
    width:20px;
    height:32px;
    float:left;
    background-image:url(../images/off.png);
}

图像:http://thewoodhouse.net/jukebox/images/on.pnghttp://thewoodhouse.net/jukebox/images/off.png

您可以尝试此示例 html 文件中的代码 http://thewoodhouse.net/jukebox/admin.html

关于javascript - 我怎样才能在这个 js 中更改鼠标悬停时星星的颜色???,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3253436/

相关文章:

html - 具有动态值和表达式的 ng-class

javascript - 如果选择了另一个具有不同名称的单选按钮,如何取消选择该单选按钮

javascript - 单击几下后如何禁用按钮功能?

html - nokogiri 从选定的 div 中抓取所有子 div

javascript - 浏览器有时会添加 <tbody>

html - 内联 SVG <use> 删除之前的 :hover fill

javascript - 如何将特定ID传递给嵌入式YouTube播放器?

javascript - 我正在尝试在 parse.com 中编写一个触发器,但出现了一些错误

javascript - 需要帮助将 Jquery 转换为 Javascript

javascript - html标签作为jquery中的字符串