http://www.geocities.jp/javascript_hp/index.html
上記HPの十字カーソルなのですが、十字カーソルを使うとボタンや、リンクがクリックできなくなります。
できるようにするにはソースのどの部分をどのように改変すればいいのでしょうか?
JAVASCRIPTの知識が乏しいのでどなたか教えてくださると助かります。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ANo1です。
反応がないので無駄なのかもしれないけど、勝手に・・・
どのような使い方をなさりたいのか不明なので適当ですが、一応ANo1の2)の方式のものを。
※隙間は±1pxで、合計2px×2pxにしてあります。
※要素サイズやマウス位置取得のクロスブラウザが面倒なのでjQueryを利用
(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
#hoge { height:300px; background-color:#FFC; }
#fuga { height:400px; margin-left:200px; width:800px; background-color:#FCF; }
</style>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery","1");</script>
<script type="text/javascript">
$(function(){
var id = "fuga"; // ←対象要素のID
//初期設定・カーソル作成
var elm = $("#" + id);
var body = $("body"), spc = 1;
var eStart = elm.offset();
var eEnd = {x: eStart.left + elm.innerWidth(), y: eStart.top + elm.innerHeight()};
var c = $("<div></div>");
c.css({ position: "absolute", top: 0, left: 0 });
var x1 = c.clone();
x1.css({ width: "1px", height: "1px", backgroundColor: "#F00" });
var x2 = x1.clone(), y1 = x1.clone(), y2 = y1.clone();
body.append(c.append(x1, x2, y1, y2));
//イベント設定
elm.on("mousemove", cursorSet);
if(elm != body && elm != $("document")) c.on("mousemove", cursorSet);
//カーソル表示処理
function cursorSet(evt){
var x = evt.pageX + body.scrollLeft();
var y = evt.pageY + body.scrollTop();
x1.css({ left: eStart.left, top: y, width: x - eStart.left - spc });
x2.css({ left: x + spc, top: y, width: eEnd.x - x - spc });
y1.css({ left: x, top: eStart.top, height: y - eStart.top - spc });
y2.css({ left: x, top: y + spc, height: eEnd.y - y - spc });
}
//クリックテスト用アラート
$("#fuga a").click(function(){ alert("clicked"); return false;});
});
</script>
</head>
<body>
<div id="hoge">hoge</div>
<div id="fuga">
<p>fuga
<p><a href="#">click test</a>
</div>
</body>
</html>
No.1
- 回答日時:
こんにちは。
ざっと見ただけですが・・・
ご提示のカーソルは、幅1pxと高さ1pxのspan要素をposition:absoluteで表示することでカーソルに見せています。
また、他の要素の上に表示されるようにz-index:400としています。
それなので、マウスポインタの直下には常にカーソルがあることになり、クリックしたときもカーソル(span要素)をクリックしたことになってしまいます。
(要素が重なっている時は、上側にある要素をクリックしたことになります)
この結果、ご質問のようなことになっていると考えられます。
簡単に思いつく、(下に)表示されている要素をクリックできるようにするアイデアをいくつか…
1)カーソルの表示を他の要素の下にする
(重なり順が下に表示されるので、見え方がカーソルっぽくなくなるかも…)
2)カーソルの交点を空けて、マウスポインタの直下には要素が来ないようにする。
(↓こんなイメージでしょうか? 大きく空ける必要はないでしょう。)
|
― ―
|
3)カーソルのスクリプトはそのままで、マウスクリックが発生したときに、カーソルの下にある要素をクリックしたものとしてスクリプトから別にクリックイベントを発生させる。(←少々面倒ではないかと想像します)
他にも方法はあると思いますが、とりあえずのご参考までに・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- iPad これまでタブレットは何台使ったか数え切れないほどですが、今回iPadを初めて手に入れました。 全体的 5 2022/08/07 18:34
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- Excel(エクセル) Excelでオートフィルのやり方がわかりません。 写真の十字カーソルが黒く変わるはずなのですが変わら 3 2022/07/01 16:36
- iPhone(アイフォーン) スマホ文字消しにくい 3 2023/07/27 15:23
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavascriptでDom XSSの脆弱性対...
-
確認ダイアログを次からは表示...
-
【JavaScript】検索がヒットし...
-
JavascriptのHTMLクラス表示に...
-
JavaScriptのdiv.style属性の変...
-
Q&A掲示板の入力フォームに文字...
-
特定の条件のHTML要素を一括で...
-
「ご処理進めて頂きますようお...
-
【Excel】特定の文字を含むセル...
-
エクセルで、日付を入力すると...
-
CloseとDisposeの違い
-
Excelシート上のマクロを登録し...
-
EXCEL VBA マクロ 実行する度に...
-
メルカリのメルカードで買い物...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
VBA SaveChanges 上書きされない
-
エクセルVBAで、MsgBox やInput...
-
DoEventsがやはり分からない
-
UPS警告音を止めたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavascriptのHTMLクラス表示に...
-
【JavaScript】検索がヒットし...
-
JavascriptでDom XSSの脆弱性対...
-
JavascriptでXSSの脆弱性への対...
-
CSSでreadonlyの機能はあり...
-
formのsubmitを押すとモーダル...
-
javascriptのエラーで質問です。
-
特定の条件のHTML要素を一括で...
-
javascriptで複数の表示・非表...
-
確認ダイアログを次からは表示...
-
2回目以降のページロード時には...
-
jqueryを使ったスムーススクロ...
-
時間帯によって背景を切り替え...
-
jqueryアコーディオンの上部の...
-
クリックすると、色が変わるよ...
-
jQueryでのドラッグアンドドロ...
-
ブラウザの表示領域から高さを...
-
vertical sliderをautoplayしたい
-
動画の上に広告をオーバーレイ...
-
GoogleストリートビューAPIでイ...
おすすめ情報