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 相关文章推荐
Bootstrap3制作图片轮播效果
May 12 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 Javascript
js数组去重的hash方法
Dec 22 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
angular2系列之路由转场动画的示例代码
Nov 09 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
Sep 07 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
vue自定义指令实现方法详解
Feb 11 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
Feb 25 Javascript
JS实现页面鼠标点击出现图片特效
Aug 19 Javascript
vue3.0 数字翻牌组件的使用方法详解
Apr 20 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
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
纯js实现背景图片切换效果代码
2010/11/14 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
JS实现鼠标滑过显示边框的菜单效果
2016/09/21 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
python 对key为时间的dict排序方法
2018/10/17 Python
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
物业招聘计划书
2014/01/10 职场文书
公务员职业生涯规划书范文  
2014/01/19 职场文书
计算机个人求职信范例
2014/01/24 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
出国留学计划书
2014/04/27 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
岳庙导游词
2015/02/04 职场文书
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫