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 相关文章推荐
[原创]来自ImageSee官方 JavaScript图片浏览器
Jan 16 Javascript
Javascript base64编码实现代码
Dec 02 Javascript
javascript 终止函数执行操作
Feb 14 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
vue中实现methods一个方法调用另外一个方法
Feb 08 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
解决vue中el-tab-pane切换的问题
Jul 19 Javascript
vue 获取url参数、get参数返回数组的操作
Nov 12 Javascript
element-ui点击查看大图的方法示例
Dec 14 Javascript
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 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中变量引用与变量销毁机制分析
2014/11/15 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
浅谈Python反射 &amp; 单例模式
2019/03/21 Python
python读文件的步骤
2019/10/08 Python
将python安装信息加入注册表的示例
2019/11/20 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
为什么要用EJB
2014/04/17 面试题
计算机网络专业推荐信
2013/11/24 职场文书
公证书标准格式
2014/04/10 职场文书
不错的求职信范文
2014/07/20 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
如何用Python搭建gRPC服务
2021/06/30 Python
pt-archiver 主键自增
2022/04/26 MySQL
KVM基础命令详解
2022/04/30 Servers
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL