JS实现文字链接感应鼠标淡入淡出改变颜色的方法


Posted in Javascript onFebruary 26, 2015

本文实例讲述了JS实现文字链接感应鼠标淡入淡出改变颜色的方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>JS实现文字链接感应鼠标淡入淡出改变颜色</TITLE>

</HEAD>

<BODY>

<script language="javascript" type="text/javascript">

startColor = "#671700"; // 定义链接颜色

endColor = "#D8D1C5";  // 定义要渐变到最后的颜色

stepIn = 17; 

stepOut = 23; 

/*

定义是否让所有的文本链接自动渐变,true为是,false为否

*/

autoFade = true;  

/*

在这里定义css样式里的类class:fade,如果为true,那么你要将要渐变的链接上加上此fade样式

*/

sloppyClass = false; 

hexa = new makearray(16);

for(var i = 0; i < 10; i++)

    hexa[i] = i;

hexa[10]="a"; hexa[11]="b"; hexa[12]="c";

hexa[13]="d"; hexa[14]="e"; hexa[15]="f";

document.onmouseover = domouseover;

document.onmouseout = domouseout;

startColor = dehexize(startColor.toLowerCase());

endColor = dehexize(endColor.toLowerCase());

var fadeId = new Array();

function dehexize(Color){

 var colorArr = new makearray(3);

 for (i=1; i<7; i++){

  for (j=0; j<16; j++){

   if (Color.charAt(i) == hexa[j]){

    if (i%2 !=0)

     colorArr[Math.floor((i-1)/2)]=eval(j)*16;

    else

     colorArr[Math.floor((i-1)/2)]+=eval(j);

   }

  }

 }

 return colorArr;

}

function domouseover() {

  if(document.all){

   var srcElement = event.srcElement;

   if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1))

        fade(startColor,endColor,srcElement.uniqueID,stepIn);      

   }

}

function domouseout() {

  if (document.all){

   var srcElement = event.srcElement;

    if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1))

        fade(endColor,startColor,srcElement.uniqueID,stepOut);

    }

}

function makearray(n) {

    this.length = n;

    for(var i = 1; i <= n; i++)

        this[i] = 0;

    return this;

}

function hex(i) {

    if (i < 0)

        return "00";

    else if (i > 255)

        return "ff";

    else

       return "" + hexa[Math.floor(i/16)] + hexa[i%16];}

function setColor(r, g, b, element) {

      var hr = hex(r); var hg = hex(g); var hb = hex(b);

      element.style.color = "#"+hr+hg+hb;

}

function fade(s,e, element,step){

 var sr = s[0]; var sg = s[1]; var sb = s[2];

 var er = e[0]; var eg = e[1]; var eb = e[2];

 

 if (fadeId[0] != null && fade[0] != element){

  setColor(sr,sg,sb,eval(fadeId[0]));

  var i = 1;

  while(i < fadeId.length){

   clearTimeout(fadeId[i]);

   i++;

   }

  }

    for(var i = 0; i <= step; i++) {

     fadeId[i+1] = setTimeout("setColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" +

   step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+

   ")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step);

  }

 fadeId[0] = element;

}

</script>

<p><a href="https://3water.com">鼠标放在此文字链接上查看预览效果</a></p>

</BODY>

</HTML>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
JS跨域总结
Aug 30 Javascript
js变换显示图片的实例
Apr 16 Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
jquery手风琴特效插件
Feb 04 Javascript
js实现Select下拉框具有输入功能的方法
Feb 06 Javascript
JS中frameset框架弹出层实例代码
Apr 01 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
Nov 18 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
Jan 05 Javascript
Vue2.x中的Render函数详解
May 30 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
Aug 27 Javascript
如何在 Vue 中使用 JSX
Feb 14 Vue.js
JS实现很酷的水波文字特效实例
Feb 26 #Javascript
jQuery中slideUp 和 slideDown 的点击事件
Feb 26 #Javascript
jQuery实现移动 和 渐变特效的点击事件
Feb 26 #Javascript
jQuery 回调函数(callback)的使用和基础
Feb 26 #Javascript
使用jQuery获得内容以及内容的属性
Feb 26 #Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 #Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
Feb 26 #Javascript
You might like
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
php微信开发接入
2016/08/27 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
js获取form的方法
2015/05/06 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
Python读写文件方法总结
2015/06/09 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
在双python下设置python3为默认的方法
2018/10/31 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
八年级生物教学反思
2014/01/22 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
小学生寒假家长评语
2014/04/16 职场文书
大学生心理活动总结
2014/07/04 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
2016年寒假生活小结
2015/10/10 职场文书
银行求职信怎么写
2019/06/20 职场文书