マウスを動かしたときに画面上に特定のテキストを書き込みたい
例: 「Hello World」
これは画像です (例)
コードはありますが、彼は私が望むものではありません
スクリプト --->
window.focus();
const output = document.querySelector('output');
let text = 'A';
window.addEventListener('mousemove', ({
x,
y
}) => {
if (x > 100) text = 'W';
if (x > 400) text = 'X';
if (y > 100) text = 'B';
if (y > 400) text = 'J';
output.textContent += text;
});
助けてください!!
テキストをどこに表示する必要がありますか?カーソル位置の右側にあるのですか? ピクセルが移動するたびに新しいテキストが作成されます?
– ラモン・ド・フリース
2020 年 9 月 3 日 11:44
@RamondeVries はい。マウスをどこに移動しても、テキストが表示されます
– コキウェバァァ
2020 年 9 月 3 日 11:46
@RamondeVries 手伝ってくれませんか?
– コキウェバァァ
2020 年 9 月 3 日 11:51
------------------------
document.query 用に変更したことに注意してくださいセレクター('#output'); ID「output」のdivを使用したためです。と <output> を使用している場合タグ (?) は、元のコードのままにしておきます。
ここでは、ページのスクロールに合わせて文字が移動します。スクロール中に同じ場所に留まりたい場合は、position: static; を使用します。
const output = document.querySelector('#output');
let text = 'Hello World!';
window.addEventListener('mousemove', ({
x,
y
}) => {
output.innerHTML += '<div style="position: absolute; left: ' + x + 'px; top: ' + y + 'px;">' + text + '</div>';
});
<div id="output" style="width: 100%; height: 100%;"></div>
7
補足: 曖昧なサンプル コードに基づいているため、あなたのソリューションは非常に気に入っていますが、このアプローチでは無数の新しい <div> が作成されます。要素。
– あいまい
2020 年 9 月 3 日 12:00
でもテキストだけが必要です。これは言葉です
– コキウェバァァ
2020 年 9 月 3 日 12:00
@obscure はい、これは最適な適切なコードというよりも、実際に試すものだと思いますが、<canvas> のようなものを使用することを除けば、これが方法です。これは、コードに何が欠けているかを OP に示すため、教育的な答えになります。まだほとんどの WordPress より div が多いわけではありません私が見たテーマ ;)
– カダス
2020 年 9 月 3 日 12:07
@kokiwebaaa 「これは単語です」とはどういう意味ですか?
– カダス
2020 年 9 月 3 日 12:09
@Kaddath それにもかかわらず、素晴らしいアイデアです - <canvas>私の頭に浮かんだのはそれだけでした。
– あいまい
2020 年 9 月 3 日 12:12
------------------------
この回答 https://stackoverflow.com/a/7790764/9496199 を変更して、ドットの代わりに hello world というテキストが表示されるようにしました。これがお役に立てば幸いです。
コード:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
<style>
body {
height: 3000px;
}
.dot {
width: fit-content;
height: fit-content;
background-color: invisible;
position: absolute;
}
</style>
</head>
<body>
<script>
(function() {
"use strict";
document.onmousemove = handleMouseMove;
function handleMouseMove(event) {
var dot, eventDoc, doc, body, pageX, pageY;
event = event || window.event; // IE-ism
// If pageX/Y aren't available and clientX/Y
// are, calculate pageX/Y - logic taken from jQuery
// Calculate pageX/Y if missing and clientX/Y available
if (event.pageX == null && event.clientX != null) {
eventDoc = (event.target && event.target.ownerDocument) || document;
doc = eventDoc.documentElement;
body = eventDoc.body;
event.pageX = event.clientX +
(doc && doc.scrollLeft || body && body.scrollLeft || 0) -
(doc && doc.clientLeft || body && body.clientLeft || 0);
event.pageY = event.clientY +
(doc && doc.scrollTop || body && body.scrollTop || 0) -
(doc && doc.clientTop || body && body.clientTop || 0 );
}
// Add a dot to follow the cursor
dot = document.createElement('div');
dot.className = "dot";
dot.innerHTML = "hello world";
dot.style.left = event.pageX + "px";
dot.style.top = event.pageY + "px";
document.body.appendChild(dot);
}
})();
</script>
</body>
</html>
0