ホームページ ウェブフロントエンド jsチュートリアル JavaScript は要素をドラッグしてグリッドに位置合わせする機能を実装します (毎回固定距離を移動します)。

JavaScript は要素をドラッグしてグリッドに位置合わせする機能を実装します (毎回固定距離を移動します)。

Feb 20, 2017 pm 02:38 PM

ここ数日間、私は要素をドラッグするための追加機能に取り組んできました。これは、実際には、要素の初期位置を決定し、毎回一定の距離を移動することを意味します。要素をドラッグします。要素をグリッド内に整列させることができます。まずはレンダリングを見てから、詳細を説明していきます

JavaScript は要素をドラッグしてグリッドに位置合わせする機能を実装します (毎回固定距離を移動します)。

各要素が最小単位距離に従って移動することがわかります。そしてそのたびに要素がグリッドに整列します。

まずデモに基づいてアイデアと詳細を説明し、デモコードは後で説明します。

1. 要素の各移動の最小単位 (デモでは 10px と 10px) を決定します。つまり、水平方向または垂直方向の移動はそれぞれ 10 ピクセルです。グリッド背景のレイヤーを配置すると、効果がわかりやすくなります (デモの各グリッドも 10px * 10px)。

2. 効果をより明確に確認するために、要素の幅と高さ (両方とも 10 ピクセルの倍数) とデフォルトの位置 (これも 10 ピクセルの倍数) が初期化されます。たとえば、要素の幅と高さは 50px * 50px、要素の初期位置は 0xp * 0px です。この利点は、最初に読み込むときに、要素が整数の小さなグリッド (つまり、5 * 5 の小さなグリッド) をカバーすることが保証され、グリッドが不完全にカバーされないことです。この記事は実際には、ユーザーや強迫性障害を持つ人々があまり心配しないようにするためのものであり、実際には配置位置を美しくするための単なる操作です。理解のある友達はそこまで意識する必要はなく、ただ理解するだけでいいのです。

3. 最も重要なことは、一定の距離を移動するタイミングをどのように決定するかです。このデモ効果について理解しておくべきことが 1 つあります。マウスの動きと要素の動きは対応していますが、リアルタイムでは同等ではありません (もちろん、最小単位を考慮しない場合は、要素をドラッグして要素の位置を に設定するだけです)。マウスの位置、このとき、マウスの動きと要素の動きはリアルタイムでは等価であることがわかります。デモの説明に戻ると、Web ページ上でマウスを動かすと、ピクセルごとに動きます (マウスの動きの位置は console.log(e.pageX) で確認できます)。要素は 10 ピクセルごとに移動します。これが私たちの理解の鍵であり、デモ全体の鍵です。

上記の考え方を理解して、コードとコメントを組み合わせて、もう一度説明してください:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
body{
margin:0px;
padding:0px;
}
p{
margin:0px;
padding:0px;
}
</style>
<script src="js/jquery-1.11.2.js"></script>
</head>
<body>
<p style="height: 600px;background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPiAgIC
A8ZGVmcz4gICAgICAgIDxwYXR0ZXJuIGlkPSJncmlkIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiPiAgICAgICAgICAgIDxwYXRoIGQ9Ik0gMTAgMCBMIDAgMCAw
IDEwIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGRkZGQiIHN0cm9rZS13aWR0aD0iMSIgb3BhY2l0eT0iMSIgLz4gICAgICAgIDwvcGF0dGVybj4gICAgPC9kZWZzPiAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ
2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyaWQpIiAvPjwvc3ZnPg==)">
<p id="bk" style="width:50px;height:50px;background: red;position: absolute"></p>
</p>
</body>
<script>
$(function(){
var orgX,orgY,eleX,eleY,hasMove=false;
$("#bk").on("mousedown",function(e){
orgX= e.pageX; //记录鼠标的水平位置
orgY= e.pageY; //记录鼠标的垂直位置
eleX=$(this).offset().left; //记录元素的水平位置
eleY=$(this).offset().top; //记录元素的垂直位置
hasMove=true; //鼠标按下时标明当前元素可以拖拽标识
});
$(document).on("mousemove",function(e){
if(hasMove){ //当元素可以拖拽时执行操作
//新位置计算方法为元素的上次位置加上新的位移量
var left=eleX+Math.round( ( e.pageX - orgX ) / 10 ) * 10;
var top= eleY+Math.round( ( e.pageY - orgY) / 10 ) * 10;
//更新位置信息
$("#bk").css({
top:top,
left:left
});
}
}).on("mouseup",function(e){
hasMove=false; //鼠标松开时设置元素不可拖拽
});
})
</script>
</html>
ログイン後にコピー



その中で最も重要なコードは、

Math.round( ( e.pageX - orgX ) / 10 ) * 10;
ログイン後にコピー



です。要素の新しい変位を計算するには、要素が押されたときのマウスの位置を最新のマウスの位置から減算し、最小単位の 10 で割り、切り上げて整数値を取得し、最小単位の 10 を掛けます。要素が移動する単位距離を取得できます。これが理解できない場合は、コードを実行して自分で考えることができます。 (もちろん、Mach の天井法と床法も使用できます)。

上記は、要素をドラッグしてグリッドに揃える (毎回一定の距離を移動する) JavaScript の実装です。関連コンテンツの詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

正確なオブジェクト検出のためのマルチグリッド冗長境界ボックス注釈 正確なオブジェクト検出のためのマルチグリッド冗長境界ボックス注釈 Jun 01, 2024 pm 09:46 PM

1. はじめに 現在、主要なオブジェクト検出器は、深層 CNN のバックボーン分類器ネットワークを再利用した 2 段階または 1 段階のネットワークです。 YOLOv3 は、入力画像を受け取り、それを等しいサイズのグリッド マトリックスに分割する、よく知られた最先端の 1 段階検出器の 1 つです。ターゲット中心を持つグリッド セルは、特定のターゲットの検出を担当します。今日私が共有するのは、各ターゲットに複数のグリッドを割り当てて正確なタイトフィット境界ボックス予測を実現する新しい数学的手法です。研究者らはまた、ターゲット検出のための効果的なオフラインのコピー&ペーストデータの強化も提案しました。新しく提案された方法は、現在の最先端の物体検出器の一部よりも大幅に性能が優れており、より優れたパフォーマンスが期待されます。 2. バックグラウンドターゲット検出ネットワークは、次のように設計されています。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

iPhoneでカメラグリッドを設定する手順 iPhoneでカメラグリッドを設定する手順 Mar 26, 2024 pm 07:21 PM

1. iPhone のデスクトップを開き、[設定] を見つけてクリックして入力します。 2. 設定ページでクリックして [カメラ] に入ります。 3. [グリッド]の右側にあるスイッチをクリックしてオンにします。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

See all articles