javascript实现改变图片指定区域的颜色

javascript本身无法改变图片的颜色,不过我们可以通过一些技巧来实现一样的效果.

1、首先我们要知道图片哪些区域需要改变颜色,这里我们可以用执点地图的方法来弄

例1:<img src="001-1.jpg" class="map" usemap="#simple"><map name="simple">
<area href="#" shape="poly" onMouseDown="DealMD(this)" coords="22,2,59,31,60,47,49,43,54,103,18,106,0,117,-2,117,-2,12,-4,25,-2,9,7,-4,5,-5,5,0,7,-3,5,-3,9,0,9,0,10,-2,8,-2,12,-2,20,2,21,0,14,-5,17,-4,15,-2,15,-4,17,-5,17,-3,17,-2,17,0,14,1,14,-1,9,-2,13,-5,14,-4,13,-4,7,-1,7,-1,13,0,11,1,13,0,9,0,10,4,10,4,11,0,11,0,9,2,9,2,9,2,9,2,9,2,9,2,9,2,9,2,9,2,9,2,9,2,10,-1,5,-2,18,-1,18,-4,11,-2,7,-2,6,-2,11,12,11,12,16,6,16,6,9,6,5,6,12,1" title="墙" />
<area href="#" onMouseDown="DealMD(this)" shape="poly" coords="154,156,154,197,182,235,280,211,284,158,264,149,263,134,191,134,187,134,187,159,170,142,156,143,156,142"  title="沙发" />

例1里面一张001-1.jpg的图片被分成了2个区域,

2、接下来我们还需要个颜色选择器,用以选择颜色.

这里有个JQUERY插件叫Farbtastic

使用方法:

引用JQUERY<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

 引用JS<script type="text/javascript" src="farbtastic.js"></script>
 引用CSS<link rel="stylesheet" href="farbtastic.css" type="text/css" />
做下初始化

 <script type="text/javascript" charset="utf-8">
  $(document).ready(function() {
    $('#fapicker').farbtastic('#color');
  });

</script>

这个是图中的文本框<input type="text" id="color" name="color"  value="#123456" />

这个就是颜色选择器:<div id="fapicker"></div>

3、有了选择器后我们现在需要改变这两个区域里的颜色

这里我们有个来改变热点地图颜色的JQUERY插件叫maphilight

使用方法:

引用<script type="text/javascript" src="jquery.metadata.min.js"></script>
引用<script type="text/javascript" src="jquery.maphilight.min.js"></script>

 在上面的初始化加上一条

$(document). ready(function() {
   $('.map').maphilight();
    $('#fapicker').farbtastic('#color');
  });

然后我们想当点击热点区域时,使这个区域的颜色同图中的文本框颜色相同

我们加上如何代码

  function DealMD(v)
{
        var data = $(v).data('maphilight') || {};
   data.fill=true;
   data.fillColor =$("#color").val();  填充颜色
  data.fillOpacity=$("#opacity").val(); 填充颜色透明度
data.stroke=true; 是否有边框
data.strokeColor=$("#color").val();
 data.strokeOpacity=0;
 data.strokeWidth= 1;
 data.fade=true;
 data.alwaysOn=true; 表示总显示
data.neverOn=false;
 data.groupBy= false
            $(v).data('maphilight', data); 改变v(也就是点击区域)区域的高亮数据
 $('.map').maphilight(); 刷新下
  
  }
 </script>

 

好了如果还不明白的话看下下面的完整例子

 http://download.csdn.net/source/2875622

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值