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 相关文章推荐
js实现上传图片之上传前预览图片
Mar 25 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
javascript动态的改变IFrame的高度实现自动伸展
Oct 12 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
Oct 23 Javascript
js获取会话框prompt的返回值的方法
Jan 10 Javascript
ECharts仪表盘实例代码(附源码下载)
Feb 18 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
Aug 01 Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 Javascript
webpack自动打包和热更新的实现方法
Jun 24 Javascript
jQuery表单选择器用法详解
Aug 22 jQuery
原生JS实现烟花效果
Mar 10 Javascript
原生js实现贪吃蛇游戏
Oct 26 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
PHP个人网站架设连环讲(三)
2006/10/09 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python内置函数reversed()用法分析
2018/03/20 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
django模板结构优化的方法
2019/02/28 Python
Python安装OpenCV的示例代码
2020/03/05 Python
如何理解python面向对象编程
2020/06/01 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
pandas 数据类型转换的实现
2020/12/29 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
口腔医学技术应届生求职信
2013/11/09 职场文书
中专毕业生自我鉴定范文
2013/11/09 职场文书
九年级政治教学反思
2014/02/06 职场文书
小学班主任寄语大全
2014/04/04 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android