


子要素の CSS 変換スケールで jQuery の draggable() および resizable() プラグインを使用するにはどうすればよいですか?
CSS Transform Scale を使用した jQuery のドラッグ/サイズ変更
この問題は、要素にスケーリングを伴う CSS 変換を適用し、jQuery のドラッグ可能な機能を使用するときに発生します。その要素内の子の () および resizable() プラグイン。問題は、適用されたスケールにより、jQuery ベースの変更がマウスの動きと「同期していない」ように見えることです。
元の解決策
パッチ適用された解決策が見つかりました。 jQuery プラグインの変更を提案した StackOverflow で。具体的には、_mouseStart() 関数と _generatePosition() 関数がスケーリングを考慮して変更されました:
- Monkey-patched _mouseStart() は、適用されるスケールと等しい係数でオフセット値を調整します。
- _generatePosition() では、ドラッグ/サイズ変更された要素が適切に配置されるように、スケール係数に基づいて動きが調整されました。
改善された解決策
その後、jQuery を変更する必要をなくす、より洗練されたソリューションが発見されました。このアプローチには、サイズ変更可能なイベントとドラッグ可能なイベントのコールバック ハンドラーの設定が含まれます:
Resizable:
$(this).resizable({ // Set very large and negative minWidth and minHeight minWidth: -(contentElem.width()) * 10, minHeight: -(contentElem.height()) * 10, resize: function(event, ui) { // Calculate the change in width and height var changeWidth = ui.size.width - ui.originalSize.width; var changeHeight = ui.size.height - ui.originalSize.height; // Adjust the new width and height by dividing the change by the zoomScale var newWidth = ui.originalSize.width + changeWidth / zoomScale; var newHeight = ui.originalSize.height + changeHeight / zoomScale; // Update the ui.size object with the adjusted values ui.size.width = newWidth; ui.size.height = newHeight; } });
Draggable:
$(this).draggable({ handle: '.drag-handle', // Specify a handle element for dragging start: function(event, ui) { // Reset the ui.position object to {left: 0, top: 0} at the start of the drag ui.position.left = 0; ui.position.top = 0; }, drag: function(event, ui) { // Calculate the change in left and top positions var changeLeft = ui.position.left - ui.originalPosition.left; var changeTop = ui.position.top - ui.originalPosition.top; // Adjust the new left and top positions by dividing the change by the zoomScale var newLeft = ui.originalPosition.left + changeLeft / zoomScale; var newTop = ui.originalPosition.top + changeTop / zoomScale; // Update the ui.position object with the adjusted values ui.position.left = newLeft; ui.position.top = newTop; } });
これらのコールバック ハンドラーを使用することにより、jQuery を変更したり、複雑なパッチ ソリューションを実装したりすることなく、ドラッグ可能でサイズ変更可能な要素がスケーリングされた要素内で正しく機能するようになります。
以上が子要素の CSS 変換スケールで jQuery の draggable() および resizable() プラグインを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック











それは' Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

WordPressエディターでユーザーに直接ドキュメントを表示する必要がある場合、それを行うための最良の方法は何ですか?

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

CSS Gridは、レイアウトをこれまで以上に簡単にするように設計されたプロパティのコレクションです。何でもするように、少し学習曲線がありますが、グリッドは

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません
