アンカーの種類別アイコンをjQueryでやってみた。

アンカーの種類別アイコンをjQueryでやってみた。

このエントリーではWEB デザイナーへの道 ~ 第 14 回 ~にインスパイアされて実験をしました。

CSS3のセレクタでできるのなら、jQueryでできるんじゃないか?と思ったのがきっかけ。

結果→大成功!(今回のセレクタはできましたが、現時点ではCSS3でもサポートしていないセレクタもあります。参考:API/1.1.2/DOM/Traversing/Selectors - jQuery JavaScript Library)ソースコードは以下の通り。

anchor_icon.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>アンカーの種類別アイコン implemented by jQuery</title>
<script src="jquery-1.2.1.pack.js"></script>
<script src="anchor_icon.js"></script>
</head>
<body>
<ul>
<li><a href="mailto:example@example.com">example@example.com</a></li>
<li><a href="example.pdf">example.pdf</a></li>
<li><a href="example.zip">example.zip</a></li>
<li><a href="example.txt">example.txt</a></li>
</ul>
</body>
</html>

anchor_icon.js

jQuery.noConflict();
var iconMap = {
    'a[href^="mailto:"]': './img/mail_ico.png',
    'a[href$=".pdf"]': './img/pdf_ico.png',
    'a[href$=".zip"]': './img/zip_ico.png',
    'a[href$=".txt"]': './img/txt_ico.png'
    };
jQuery(function(){
    jQuery.each(iconMap, function(selector, icon){
        jQuery(selector).css({
            'background': 'transparent '+
                          'url(\''+icon+'\') '+
                          'center left no-repeat',
            'padding-left': '15px'
        });
    });
});

アンカーのアイコンテストで、実行結果をご覧ください。

Firefox2.0, IE6, Opera9で動作しました。jQueryすごい!jquery.each()も初めて使ってみましたが、便利ですね。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ