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 相关文章推荐
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
jquery中EasyUI实现异步树
Mar 01 Javascript
js数组依据下标删除元素
Apr 14 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
Mar 22 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
Angularjs中使用轮播图指令swiper
May 30 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
JS实现骰子3D旋转效果
Oct 24 Javascript
vant 解决tab切换插件标题样式自定义的问题
Nov 13 Javascript
AJAX学习笔记
May 18 Javascript
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
无限级别菜单的实现
2006/10/09 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
javascript继承之为什么要继承
2012/11/10 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
Python中的tuple元组详细介绍
2015/02/02 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
pandas ix &amp;iloc &amp;loc的区别
2019/01/10 Python
详解Python传入参数的几种方法
2019/05/16 Python
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
个人简历自我评价八例
2013/10/31 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
珍珠奶茶店创业计划书
2014/01/11 职场文书
个人评价范文分享
2014/01/11 职场文书
推广活动策划方案
2014/08/23 职场文书
爱的承诺书
2015/01/20 职场文书
大队委员竞选稿
2015/11/20 职场文书
团干部培训班心得体会
2016/01/06 职场文书
Python上下文管理器Content Manager
2021/06/26 Python