您的位置:首页 > Web前端 > JQuery

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

2015-08-06 17:25 846 查看
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>

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

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: