javascript實現改變圖片指定地區的顏色

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.