鼠标在字体上移动,字体颜色渐变

这里的传参方法跟本博客中javascript"鼠标移入移出背景色渐变"中的传参方式相同,我贴的代码是全部都有的,大家可以复制过去直接看效果,有更好的建议的望留言……

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>鼠标在字体上移入移出字体颜色渐变</title>
    <style>
        *{
            margin:0;
            padding:0;
        }
        ul{
            margin:10px auto;
            padding:20px;
            width:100px;
            background-color: #B7B7B7;
            font-size: 20px;
        }
        ul li{
            list-style-type: none;
            height:25px;
            line-height: 25px;
            text-align: center;
        }
        a{
            text-decoration: none;
            color:#fff;
        }
    </style>
</head>
<body>
    <ul id="con">
        <li><a href="javascript:;">one</a></li>
        <li><a href="javascript:;">two</a></li>
        <li><a href="javascript:;">three</a></li>
        <li><a href="javascript:;">four</a></li>
        <li><a href="javascript:;">five</a></li>
        <li><a href="javascript:;">six</a></li>
    </ul>
    <script>
        var links = document.getElementById("con").getElementsByTagName("a");
        for (var i = 0; i < links.length; i++) {
            //这里的传参跟本博客javascript中一个"鼠标渐入渐出背景色变化"中的传参一样,使用临界值
            links[i].onmouseover = function(){
                changeColor(this,15);//这里很巧秒地将对象传递到函数中,这里的this太漂亮了
            }
            links[i].onmouseout = function(){
                changeColor(this,0);
            }
        };
        function changeColor(obj,color_val){
            clearInterval(obj.timer);
            var i = color_val;
            obj.timer = setInterval(function(){
                color_val ? i-- : i++;//这个或许就是高手的写法,color_val相当于将整数转换为布尔值时的规则
                var result = getColor(i);
                obj.style.color = result;
                if(i==0||i==15){
                    clearInterval(obj.timer);
                }
            },30);
        }
        //将颜色值转变为16进制,这里参考一个16进制颜色表示规则,随着数值的变大颜色越浅
        function getColor(color){
            var result = "";
            for(var i=0;i<3;i++){
                result += color.toString(16);
            }
            return "#"+result;
        }
    </script>
</body>
</html>
鼠标在字体上移动,字体颜色渐变

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。