Anda juga dapat menambahkan paddingLeft: 'toggle', paddingRight: 'toggle'ketika elemen memiliki bantalan internal.
piotr_cz
17
Berfungsi dengan baik, hanya slide dari kiri ke kanan ketika saya mencobanya. Mungkinkah membuatnya hidup dengan cara sebaliknya?
twan
2
Satu-satunya masalah adalah bahwa jika ada konten di dalamnya, "terjepit" secara horizontal, menyebabkan kontrol untuk bergerak / mengubah ukuran / membungkus dll. Apakah ada solusi yang baik untuk itu?
Neil Barnwell
1
Kode Anda perlu lebih banyak CSSuntuk terlihat seperti slide nyata
AmerllicA
1
@NeilBarnwell jika Anda bisa, letakkan konten dalam bungkus lebar tetap dan miliki wadahnya overflow: hidden.
Ben Philipp
239
Ini dapat dicapai secara native menggunakan metode hide / show jQueryUI. Misalnya.
// To slide something leftwards into view,// with a delay of 1000 msec
$("div").click(function(){
$(this).show("slide",{ direction:"left"},1000);});
@ekerner - ini membutuhkan JQueryUI, yang merupakan perpustakaan besar. Jika semua yang Anda inginkan adalah transisi slide sederhana, ini mungkin bukan jawabannya;)
Jesse
9
Ini adalah cara terbaik jika Anda menginstal jQueryUI.
steampowered
5
Untuk memperjelas - file min setidaknya 235kb !! Ini bagus tetapi akan menambah banyak ke halaman Anda sebagai @Jesse menunjukkan
Ukuser32
1
Menggunakan pembangun kustom dan menghapus segala sesuatu kecuali animasi slide, dimungkinkan untuk mendapatkan JS yang diperkecil di bawah 20KB.
Skylar Ittner
Saya berharap dokumen JQuery UI akan memiliki contoh seperti ini. Terima kasih
Menghitung nilai dalam 'px', jadi tidak layak untuk '%'
Faisal Ashfaq
itu bergerak ke kiri di setiap klik.
Elyor
Anda dapat memeriksa lebar luar dan menggunakannya untuk menambahkan margin yang tepat
Tofandel
22
Lihatlah contoh kerja ini di Fiddle, yang menggunakan jQuery UI . Ini adalah solusi yang saya gunakan awalnya dari kiri ke kanan, tetapi saya telah mengubahnya untuk bekerja dari kanan ke kiri.
Hal ini memungkinkan pengguna untuk mengklik tautan dengan cepat tanpa merusak animasi di antara panel yang tersedia.
Kode JavaScript sederhana:
$(document).ready(function(){// Mostra e nascondi view-newsvar active ="europa-view";
$('a.view-list-item').click(function(){var divname=this.name;
$("#"+active ).hide("slide",{ direction:"right"},1200);
$("#"+divname).delay(400).show("slide",{ direction:"right"},1200);
active = divname;});});
Dapatkan HTML dan CSS di tautan Fiddle.
Menambahkan latar belakang putih dan bantalan kiri hanya untuk presentasi efek yang lebih baik.
Kenapa tidak digunakan width: 'toggle'? btn.show().animate({width: 'toggle'}, {duration: 500});itulah yang Anda butuhkan, saya percaya.
Aart den Braber
6
Pustaka lain yang layak disebut adalah animate.css . Ini berfungsi baik dengan jQuery, dan Anda dapat melakukan banyak animasi menarik hanya dengan mengaktifkan kelas CSS.
GreenSock Animation Platform (GSAP) denganTweenLite/TweenMaxmemberikan transisi yang jauh lebih halus dengan kustomisasi yang jauh lebih besar daripada transisi jQuery atau CSS3. Untuk menghidupkan properti CSS dengan TweenLite / TweenMax, Anda juga membutuhkan plugin mereka yang disebut "CSSPlugin". TweenMax menyertakan ini secara otomatis.
Menurut situs web mereka:
"TweenLite adalah alat animasi yang sangat cepat, ringan, dan fleksibel yang berfungsi sebagai fondasi GreenSock Animation Platform (GSAP)."
<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><divclass="wrap">
click here
<divclass="content">
I would like to have a div go from collapsed to expanded (and vice versa), but do so from right to left. Most everything I see out there is always left to right.
</div></div>
Ketika menjawab pertanyaan sepuluh tahun dengan empat belas jawaban lain yang ada, akan membantu menjelaskan pendekatan baru apa yang dijawab oleh jawaban Anda, dan apakah itu akan valid ketika pertanyaan itu diajukan, atau jika menggunakan teknik yang tersedia selama sepuluh tahun tersebut. .
Jason Aller
1
Contoh yang saya lakukan menggunakan scroll (hanya HTML, CSS dan JS, hanya dengan pustaka jquery). Ketika menggulir ke bawah tombol akan geser ke kiri.
Juga, saya sarankan Anda jika satu-satunya yang Anda inginkan adalah efek ini, jangan gunakan jQuery UI karena terlalu berat (jika Anda hanya ingin menggunakannya untuk itu).
Jawaban:
Referensi: https://api.jquery.com/animate/
sumber
paddingLeft: 'toggle', paddingRight: 'toggle'
ketika elemen memiliki bantalan internal.CSS
untuk terlihat seperti slide nyataoverflow: hidden
.Ini dapat dicapai secara native menggunakan metode hide / show jQueryUI. Misalnya.
Referensi: http://docs.jquery.com/UI/Effects/Slide
sumber
Gunakan ini:
Demo langsung
Versi yang ditingkatkan
Beberapa kode telah ditambahkan ke demo, untuk mencegah margin ganda pada klik ganda: http://jsfiddle.net/XNnHC/942/
Gunakan dengan pelonggaran;)
http://jsfiddle.net/XNnHC/1591/
Kode JavaScript tambahan dihapus.
Nama kelas & beberapa kode CSS berubah
Fitur yang ditambahkan untuk menemukan apakah diperluas atau diciutkan
Diubah apakah menggunakan efek pelonggaran atau tidak
Kecepatan animasi berubah
http://jsfiddle.net/XNnHC/1808/
sumber
Lihatlah contoh kerja ini di Fiddle, yang menggunakan jQuery UI . Ini adalah solusi yang saya gunakan awalnya dari kiri ke kanan, tetapi saya telah mengubahnya untuk bekerja dari kanan ke kiri.
Hal ini memungkinkan pengguna untuk mengklik tautan dengan cepat tanpa merusak animasi di antara panel yang tersedia.
Kode JavaScript sederhana:
Dapatkan HTML dan CSS di tautan Fiddle.
Menambahkan latar belakang putih dan bantalan kiri hanya untuk presentasi efek yang lebih baik.
sumber
Gunakan ini
sumber
sumber
Saya telah melakukannya dengan cara ini:
Catatan, simpul "btn" itu harus disembunyikan sebelum animasi, dan Anda mungkin juga perlu mengatur "position: absolute" untuk itu.
sumber
width: 'toggle'
?btn.show().animate({width: 'toggle'}, {duration: 500});
itulah yang Anda butuhkan, saya percaya.Pustaka lain yang layak disebut adalah animate.css . Ini berfungsi baik dengan jQuery, dan Anda dapat melakukan banyak animasi menarik hanya dengan mengaktifkan kelas CSS.
Suka..
sumber
GreenSock Animation Platform (GSAP) dengan
TweenLite
/TweenMax
memberikan transisi yang jauh lebih halus dengan kustomisasi yang jauh lebih besar daripada transisi jQuery atau CSS3. Untuk menghidupkan properti CSS dengan TweenLite / TweenMax, Anda juga membutuhkan plugin mereka yang disebut "CSSPlugin". TweenMax menyertakan ini secara otomatis.Pertama, muat pustaka TweenMax:
Atau versi ringan, TweenLite:
Lalu, panggil animasi Anda:
Anda juga dapat menyebutnya dengan pemilih ID:
Jika Anda memiliki jQuery yang dimuat, Anda dapat menggunakan penyeleksi luas yang lebih canggih, seperti semua elemen yang mengandung kelas tertentu:
Untuk detail selengkapnya, lihat: Dokumentasi TweenLite
Menurut situs web mereka: "TweenLite adalah alat animasi yang sangat cepat, ringan, dan fleksibel yang berfungsi sebagai fondasi GreenSock Animation Platform (GSAP)."
sumber
Anda dapat menentukan lebar elemen sebagai 0, mengambang ke kanan, dan kemudian pada acara yang akan Anda tunjukkan .. itu akan menjadi seperti
Sederhana seperti itu.
sumber
Contoh animasi kanan ke kiri tanpa jQuery UI , hanya dengan jQuery (versi apa pun, lihat https://api.jquery.com/animate/ ).
sumber
Lihat contoh di sini.
https://jsfiddle.net/q1pdgn96/2/
sumber
atau bisa kamu gunakan
sumber
Contoh yang saya lakukan menggunakan scroll (hanya HTML, CSS dan JS, hanya dengan pustaka jquery). Ketika menggulir ke bawah tombol akan geser ke kiri.
Juga, saya sarankan Anda jika satu-satunya yang Anda inginkan adalah efek ini, jangan gunakan jQuery UI karena terlalu berat (jika Anda hanya ingin menggunakannya untuk itu).
Lihat contoh ini
sumber
Jika
div
posisi Anda benar-benar dan Anda tahu lebarnya, Anda bisa menggunakan:Yang akan menggesernya keluar layar.
Atau, Anda bisa membungkusnya dengan wadah
div
sumber