Vue melaksanakan lebar kawalan seretan tetikus
Vue.js ialah rangka kerja JavaScript yang popular Ia bukan sahaja rangka kerja, tetapi juga pustaka yang sangat fleksibel dan berkuasa. Rangka kerja ini membolehkan pembangun melaksanakan aplikasi bahagian hadapan dengan cekap. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Vue.js untuk melaksanakan kawalan seret tetikus terhadap lebar.
Melaksanakan seretan tetikus untuk mengawal lebar ialah interaksi biasa dalam banyak aplikasi web, seperti menyeret bar sempadan atau peluncur untuk mengubah saiz bekas atau mengubah saiz imej. Bahagian UI paling asas dalam interaksi ini ialah elemen boleh seret dan bekas sebagai elemen sasaran. Dalam Vue.js, kami menggunakan arahan dan pengendali acara untuk melaksanakan seret dan lepas.
Langkah pertama ialah mentakrifkan arahan yang mencetuskan penyeretan dalam tika Vue. Arahan "v-draggable" perlu terikat pada elemen seret. Arahan ini didaftarkan sebagai komponen global atau tempatan menggunakan API arahan tersuai Vue.
Vue.directive('draggable', {
bind(el, binding, vnode) {
let xOffset = 0; let yOffset = 0; const handleMouseDown = (event) => { if (!event.target.classList.contains('drag-handle')) { return; } xOffset = event.clientX; yOffset = event.clientY; document.addEventListener('mousemove', handleMouseMove); document.addEventListener('mouseup', handleMouseUp); }; const handleMouseMove = (event) => { const currentX = event.clientX; const currentY = event.clientY; const dx = currentX - xOffset; const dy = currentY - yOffset; const newWidth = el.offsetWidth + dx; vnode.context[binding.expression] = newWidth; }; const handleMouseUp = () => { document.removeEventListener('mousemove', handleMouseMove); document.removeEventListener('mouseup', handleMouseUp); }; el.querySelector('.drag-handle').addEventListener('mousedown', handleMouseDown);
}
});
in directive , kami mentakrifkan acara turun tetikus (mousedown). Kami mengikat peristiwa itu kepada unsur pengikat (el) arahan. Selepas peristiwa berlaku, kami merekodkan tetikus mengimbangi relatif kepada elemen supaya kami boleh mengira kedudukan baharu elemen semasa menyeret. Kami kemudian mengira offset dalam acara mousemove, mengetahui lebar baharu dan mengikatnya ke dalam contoh Vue.
Akhir sekali, kami mengikat acara mouseup (mouseup) pada objek dokumen supaya acara mouseup masih dapat dikesan selepas pengguna meninggalkan kawasan seret, dan acara mousemove dan mouseup dikosongkan daripada pendengar.
Seterusnya, kami menggunakan arahan "v-draggable" untuk mengikat elemen seret pada sifat data komponen Vue.
Vue.component('resizable', {
templat: `
<div class="resizable"> <div class="wrapper"> <div class="panel-a"> <div v-draggable="width" class="drag-area"> <div class="drag-handle"></div> </div> </div> <div class="panel-b" :style="{ width: width + 'px' }"></div> </div> </div>
`,
data() {
return { width: 400, };
},
});
Dalam contoh ini, kami mencipta komponen React "Boleh saiz semula". Ia terdiri daripada kawasan boleh seret dan bekas. Kami menggunakan arahan v-draggable untuk mengikat elemen seret kepada nilai lebar, dan elemen itu ditambahkan pada bekas kelas "kawasan seret".
Akhir sekali, kami menjadikan komponen itu ke dalam DOM.
Vue baharu({
el: '#app',
});
Dengan cara ini kami berjaya menggunakan Vue.js untuk melaksanakan seret dan lepas tetikus untuk mengawal lebar elemen yang diseret . Vue.js menyediakan banyak fleksibiliti dan kebolehlanjutan, menjadikan pembangunan interaksi jenis ini sangat mudah.
Atas ialah kandungan terperinci Vue melaksanakan lebar kawalan seretan tetikus. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



React menggabungkan JSX dan HTML untuk meningkatkan pengalaman pengguna. 1) JSX membenamkan HTML untuk menjadikan pembangunan lebih intuitif. 2) Mekanisme DOM maya mengoptimumkan prestasi dan mengurangkan operasi DOM. 3) UI pengurusan berasaskan komponen untuk meningkatkan kebolehkerjaan. 4) Pengurusan negeri dan pemprosesan acara meningkatkan interaktiviti.

Artikel membincangkan penyambungan komponen reaksi ke kedai redux menggunakan Connect (), menerangkan MapStateToprops, MapdispatchToprops, dan kesan prestasi.

Artikel ini membincangkan laluan yang menentukan dalam Router React menggunakan & lt; route & gt; Komponen, meliputi prop seperti Path, Component, Render, Children, Exact, dan Routing bersarang.

Sistem Reaktiviti Vue 2 bergelut dengan tetapan indeks array langsung, pengubahsuaian panjang, dan penambahan/penghapusan harta benda objek. Pemaju boleh menggunakan kaedah mutasi Vue dan vue.set () untuk memastikan kereaktifan.

Redux Reducers adalah fungsi tulen yang mengemas kini keadaan aplikasi berdasarkan tindakan, memastikan kebolehprediksi dan kebolehubahan.

Artikel ini membincangkan tindakan Redux, struktur mereka, dan kaedah penghantaran, termasuk tindakan tak segerak menggunakan Redux Thunk. Ia menekankan amalan terbaik untuk menguruskan jenis tindakan untuk mengekalkan aplikasi berskala dan diselenggarakan.

TypeScript meningkatkan pembangunan React dengan menyediakan keselamatan jenis, meningkatkan kualiti kod, dan menawarkan sokongan IDE yang lebih baik, dengan itu mengurangkan kesilapan dan meningkatkan kebolehkerjaan.

Komponen React boleh ditakrifkan oleh fungsi atau kelas, merangkumi logik UI dan menerima data input melalui prop. 1) Tentukan komponen: Gunakan fungsi atau kelas untuk mengembalikan elemen bertindak balas. 2) Rendering Component: React Call Render Kaedah atau Melaksanakan Komponen Fungsi. 3) Komponen multiplexing: Lulus data melalui prop untuk membina UI yang kompleks. Pendekatan kitaran hayat komponen membolehkan logik dilaksanakan pada peringkat yang berbeza, meningkatkan kecekapan pembangunan dan pemeliharaan kod.
