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 相关文章推荐
JavaScript Date对象 日期获取函数
Dec 19 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
May 13 Javascript
js代码实现点击按钮出现60秒倒计时
Jan 28 Javascript
AngularJS基础 ng-keydown 指令简单示例
Aug 02 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
vue点击自增和求和的实例代码
Nov 06 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
Nov 07 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 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源代码
2006/10/09 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JavaScript对象反射用法实例
2015/04/17 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
CNC数控操作工岗位职责
2013/11/19 职场文书
自我评价范文分享
2014/01/04 职场文书
工作表现自我评价
2014/02/08 职场文书
美术教师岗位职责
2014/03/18 职场文书
3分钟演讲稿
2014/04/30 职场文书
运动员口号
2014/06/09 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
先进工作者推荐材料
2014/12/23 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS