

onMouseOverを使って、特定のブロックをリンクボタンのように機能させる方法を教えて頂けませんでしょうか。
具体例は、ユニクロさんのショッピングカートです。
ユニクロさんのオンラインストアサイトでは、ほとんどのページでページの右上に小さなショッピングカートサマリーが表示されます。(トップページ以外)
【たとえば、このページ。(リンク先はユニクロさんの特集一覧)】
http://store.uniqlo.com/jp/store/feature/
このショッピングカートサマリーはareaStoreNaviというブロックで、
下層にCartArea01という要素を持ち、その要素内に「ショッピングカート」というテキスト文字で、カートの中身を表示するURLへリンクを貼っています。
このテキスト文字の上に、ショッピングカートサマリーの背景画像が上書き表示され、テキスト文字は通常は表示されません。
そしてショッピングカートサマリーの背景画像やその文字列にはリンクが貼られていません。
上位ブロックであるareaStoreNaviにOnMouseOverで、マウスオーバー時にCartArea01のリンク効果をareaStoreNaviブロックに適用しているのだと思うのですが、実際に自分の環境で記述する方法が分からないのです。
<DIV id=areaStoreNavi onMouseOver="cartArea('1');"
onmouseout="cartArea('0');">
<DIV class=Cartarea01><A title=ショッピングカート
href="http://store.uniqlo.com/jp/disp/CUCtViewCartLink …ショッピングカート</A></DIV>
<DIV class=Cartarea02>
<TABLE cellSpacing=0 cellPadding=0 width=114 border=0>
<TBODY>
<TR>
<TD class=itemNum>0点</TD></TR>
<TR>
<TD class=itemPrice>¥0</TD></TR></TBODY></TABLE></DIV>
どうして"cartArea('1');" なのでしょう?
"cartArea01;" や"cartArea1;" でない理由がよく分からないのです。
「それは○○のルールにのっとっているんだよ」ということを教えて頂ければ、嬉しく思います。
皆さまのお力を貸して頂けませんでしょうか。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
javascriptのcartArea()については
cartArea('1')やcartArea('0')でマウスが重なったタイミングと
離れたタイミングをフラグとしてあらわしているだけだと
思います。
下記と同様な感じだと思います。
<html>から</html>まで
コピーして実行してみてください。
<html>
<head>
<script type="text/javascript">
<!--
//背景色が変わる
function changeBgcolor (num) {
//1の時は青
if (num == '1') {
document.getElementById('dummy').style.backgroundColor = "#000099";
//それ以外は白
} else {
document.getElementById('dummy').style.backgroundColor = "#FFFFFF";
}
}
//リンクの設定
function changeLink () {
document.getElementById('lnk').href = "./foo.html";
}
// -->
</script>
</head>
<body>
<div id="dummy" onmouseover="changeBgcolor('1');" onmouseout="changeBgcolor('0');">aaaa</div>
<div onmouseover="changeLink();"><a name="lnk" href="">aaaa</a></div>
</body/>
</html>
>>このテキスト文字の上に、ショッピングカートサマリーの背景画像が上書き表示され、テキスト文字は通常は表示されません。
自分の環境ですと再現できないのでわかりませんでした。
が、
でもマウスが乗った時にポップみたいに表示される
やつですかね?
マウスが乗ったとき表示される代替テキストみたいなのを
javascriptで変更したりする気がしましたが。。
ありがとうございます!
えらく勘違いしていた(色を変えているだけの記述だった)こと、
教えていただかなければ自分で気づけなかったと思います。
たいへん助かりました。
教えていただいたことを踏まえて、ショッピングカートサマリーをよく見ると、(マウスでさぐってみれば)
上から3分の1くらいがリンクありで、下3分の2はリンク無しだったことがに気づきました。
マウスオーバーでボタン全体の色が変わっていたので、
ボタン全体がリンクありだと思い込んでいました。
下の方をクリックしても遷移しなかったはずなのに、案外気づかないことに驚きです。
ボタン全体でポインタ画像が「指の形」になっても、
「ショッピングカート」の文字を押したくなる心理なのでしょうか。
たいへん助かりました。ありがとうございました!
No.2
- 回答日時:
・ public_sa様の御指摘の様に、cartArea(n)は、単に背景色を変更しているだけです。
ソースコードは以下の通りです。
http://store.uniqlo.com/jp/js/disp/item.js
function cartArea(n){
if(n=='0'){
document.getElementById('areaStoreNavi').style.backgroundColor = "#434343";
} else {
document.getElementById('areaStoreNavi').style.backgroundColor = "#000000";
}
}
>>> このテキスト文字の上に、ショッピングカートサマリーの背景画像が上書き表示され、テキスト文字は通常は表示されません。
普通の画像はありません。おそらく、LiveConnectやSparklineといった技術でPNG形式の画像を作成しているのでしょう。また、テキスト文字は表示されています。
>>> 上位ブロックであるareaStoreNaviにOnMouseOverで、マウスオーバー時にCartArea01のリンク効果をareaStoreNaviブロックに適用しているのだと思うのですが、実際に自分の環境で記述する方法が分からないのです。
最初に述べたように、OnMouseOverは、リンクとは全く関係がありません。リンクはあくまでも
<a href="http://store.uniqlo.com/jp/disp/CUCtViewCartLink … title="ショッピングカート">ショッピングカート</a>
です。
ありがとうございます!
お礼の内容が重複しますが、お二方の回答を同時に参考にして勉強しました。
特にautyさんの回答の中では、ソースコードの#434343が参考になりました。
これがなければ、「ボタン全体の色が変わっているだけで、リンクは上3分の1だけ」だったことに気づけなかったと思います。
>>LiveConnectやSparklineといった技術でPNG形式の画像を作成しているのでしょう。
「これって、どんな技術だろう?」と興味を持ちましたので、
お礼を投稿したあとに自分で調べてみます。
>>最初に述べたように、OnMouseOverは、リンクとは全く関係がありません。リンクはあくまでも
>> <a href="http://store.uniqlo.com/jp/disp/CUCtViewCartLink … title="ショッピングカート">ショッピングカート</a>
>>です。
そうなんですね。ホントにこの3行が答えのポイントでした。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タブレットの高解像度化で、見...
-
HPデザインのコーディング方法
-
ブラウザによって、画面表示の...
-
ネットスケープでのスタイルシ...
-
wordpress ヘッダー画像 横に...
-
添付画像のようなサイトを製作...
-
楽天ショップのデザイン
-
画像を取り出す
-
CSS3 PIEがIE6,7に効きません。
-
ひとつの画像をWEBで異なる小さ...
-
IEでのbackground-size使用につ...
-
htmlとcssを使って、現在webサ...
-
2ページ目以降を他の画像で繰り...
-
カーソルを合わせると画像がふ...
-
ホームページの枠に影をつける...
-
全く同じソースなのに、一方で...
-
テンプレートの背景色を変更
-
フロートした場合にできる空き...
-
onMouseOverでリンクを作る方法...
-
ホームページの背景画像を画面...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【至急お助け!】チェックボッ...
-
【Webサイト】画像が小さく表示...
-
画像とその下にあるテキストの...
-
background-repeat CSS で切れ...
-
<hr>の縦バージョンはありますか?
-
WEB上でディレクトリ内の画像を...
-
IMGタグで画像の繰り返し使用は…
-
画像の上にテキスト配置で、拡...
-
同じ画像 複数回使用
-
background-sizeでcontainする...
-
iframe内をクリックさせない方...
-
要素の幅をいろんな写真の幅に...
-
background-sizeの背景で最小値...
-
ページごとに背景画像を変更し...
-
lightbox2で画像を天地左右中央...
-
CSSのrepeatで切れ目が出る
-
画像の大きさに合わせて文字の...
-
フッターの背景に色を指定した...
-
Safariでのひどいレイアウト崩れ
-
CSSで背景画像をランダムに表示...
おすすめ情報