Rumah > hujung hadapan web > tutorial css > ## Bagaimana untuk Menyelesaikan Percanggahan Seret/Ubah Saiz jQuery dengan Skala Transformasi CSS?

## Bagaimana untuk Menyelesaikan Percanggahan Seret/Ubah Saiz jQuery dengan Skala Transformasi CSS?

Linda Hamilton
Lepaskan: 2024-10-29 05:53:02
asal
688 orang telah melayarinya

## How to Resolve jQuery Drag/Resize Discrepancies with CSS Transform Scale?

jQuery Drag/Resize dengan CSS Transform Scale

Isu:

Menggunakan transformasi CSS ( termasuk penskalaan matriks) kepada elemen menyebabkan percanggahan dalam menyeret dan mensaiz semula operasi yang dilakukan dengan pemalam draggable() dan resizable() jQuery.

Penyelesaian:

Seorang pengguna mencadangkan tampung yang mengubah suai pemalam jQuery, tetapi penyelesaian ini memerlukan pengeditan fail pemalam.

Pendekatan Alternatif:

Sebagai alternatif, anda boleh mengelak daripada menampal jQuery dengan menggunakan pengendali panggil balik dalam draggable dan konfigurasi boleh ubah saiz. Pendekatan ini melaraskan dimensi dan kedudukan baharu berdasarkan skala zum semasa acara ini.

Kod:

Untuk Boleh Resizable:

<code class="js">$(this).resizable({
  minWidth: -(contentElem.width()) * 10,
  minHeight: -(contentElem.height()) * 10,
  resize: function(event, ui) {
    var changeWidth = ui.size.width - ui.originalSize.width;
    var newWidth = ui.originalSize.width + changeWidth / zoomScale;
    var changeHeight = ui.size.height - ui.originalSize.height;
    var newHeight = ui.originalSize.height + changeHeight / zoomScale;
    ui.size.width = newWidth;
    ui.size.height = newHeight;
  }
});</code>
Salin selepas log masuk

Untuk Boleh Seret:

<code class="js">$(this).draggable({
  handle: '.drag-handle',
  start: function(event, ui) {
    ui.position.left = 0;
    ui.position.top = 0;
  },
  drag: function(event, ui) {
    var changeLeft = ui.position.left - ui.originalPosition.left;
    var newLeft = ui.originalPosition.left + changeLeft / ((zoomScale));
    var changeTop = ui.position.top - ui.originalPosition.top;
    var newTop = ui.originalPosition.top + changeTop / zoomScale;
    ui.position.left = newLeft;
    ui.position.top = newTop;
  }
});</code>
Salin selepas log masuk

Dalam coretan kod ini, zoomScale ialah pembolehubah global yang mewakili skala semasa elemen yang diubah.

Penyelesaian ini menyediakan kaedah tidak mengganggu untuk mengendalikan penyeretan dan saiz semula dalam elemen berskala menggunakan pemalam jQuery.

Atas ialah kandungan terperinci ## Bagaimana untuk Menyelesaikan Percanggahan Seret/Ubah Saiz jQuery dengan Skala Transformasi CSS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan