0
1

More than 3 years have passed since last update.

【jQuery】イメージマップでマウスオーバー効果をつくる方法

Last updated at Posted at 2020-06-20

画像の一部にリンクなどを描いたときに、イメージマップを使うことがあります。マップ部分にマウスオンした時に効果を出すため、画像をスワップさせるスクリプトをご紹介します。jQueryを利用します。

hover.png

JavaScript
  $(function(){
    $('area').each(function(){
        var usemap = $(this).parent().attr('name');
        var image = $('img[usemap="#' + usemap + '"]');
        var src_off = image.attr('src');
        var src_on = src_off.replace('_off','_on');
        $(this).hover(function(){
            image.attr('src',src_on);
        },function(){
            image.attr('src',src_off);
        });
    });
  });
HTML
<img src="img/visual_off.png" usemap="#ImageMap" alt="" />
<map name="ImageMap">
    <area shape="rect" coords="219,445,878,557" href="#form" alt="" data-scroll />
</map>

スクリプトの解説

スワップする画像はファイル名の最後に _off がついている画像と _on がついている画像を用意します。

HTML
<img src="img/visual_off.png" usemap="#ImageMap" alt="" />

JavaScript内では、まず、area タグが付いているもの全てについて、name属性から、関連するusemapのついた画像を探しています。

JavaScript
        var usemap = $(this).parent().attr('name');
        var image = $('img[usemap="#' + usemap + '"]');

その画像のsrcから、画像の場所を受け取り、それをOFFの場合の画像とします。
末尾をONに差し替えたものをONの画像として扱います。

JavaScript
        var src_off = image.attr('src');
        var src_on = src_off.replace('_off','_on');

ホバーの第1引数に、ONの画像を、第2引数にOFFを入れて完成です。

JavaScript

        $(this).hover(function(){
            image.attr('src',src_on);
        },function(){
            image.attr('src',src_off);
        });

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1