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


    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

  • 相关阅读:
    为什么C/C++语言使用指针
    VS2010调试入门指南
    vs2010的11个调试技巧和方法
    排序算法一:快速排序
    Ubuntu下codeblocks汉化
    Ubuntu下Code::Blocks无法编译 /bin/sh: 1: g++ not found 解决办法
    QQ通信原理及QQ是怎么穿透内网进行通信的?
    jackson中自定义处理序列化和反序列化
    Json解析工具Jackson(使用注解)
    jackSon注解– @JsonInclude 注解不返回null值字段
  • 原文地址:https://www.cnblogs.com/DaBing0806/p/4708563.html
Copyright © 2020-2023  润新知