ここ数日間、私は要素をドラッグするための追加機能に取り組んできました。これは、実際には、要素の初期位置を決定し、毎回一定の距離を移動することを意味します。要素をドラッグします。要素をグリッド内に整列させることができます。まずはレンダリングを見てから、詳細を説明していきます
各要素が最小単位距離に従って移動することがわかります。そしてそのたびに要素がグリッドに整列します。
まずデモに基づいてアイデアと詳細を説明し、デモコードは後で説明します。
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) に注目してください。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
