사용자 정의 선택 양식 menggunakan css dan javascript
14748 단어 htmlcssjavascript
select
dan radio-button
.Untuk 입력 텍스트 kita bisa dengan mudah meng-custom nya. Tapi 요소 요소 lain seperti
select
danradio-button
itu kita ngga bener-bener bisa custom. kita bisa sihh me-reset style bawaan dari si element nya pake appearance: none;
. Tapi untuk element select
masih terlihat jelek, karena kita ngga bisa ngasih padding di option box nya.아니, yang akan kita bahas sekarang adalah bagaimana caranya meng-custom element select menggunakan css dan javascript. Perlu diketahui, seperti yang saya bilang sebelum nya, kita ngga bener-bener bisa meng-custom native
select
요소, jadi yang akan kita lakuin adalah membuat 선택 요소 menggunakan div, tanpa mengurangi fungsionalitas 요소 tersebut.Pertama kita bikin element HTML nya dulu, kita akan buat form utuh dengan 2 input dan 1 select, yang nantinya akan kita test untuk mengirim isi form nya.
<form action="" method="GET">
<div class="form-group">
<label for="nama">Nama</label>
<input type="text" id="nama" name="nama">
</div>
<div class="form-group">
<label for="alamat">Alamat</label>
<input type="text" id="alamat" name="alamat">
</div>
<div class="form-group">
<label>Daftar Pilihan</label>
<div class="label">Pilihan 1</div>
<input type="hidden" id="hidden" name="pilihan">
<div class="select">
<div class="options">
<div class="option">Pilihan 1</div>
<div class="option">Pilihan 2</div>
<div class="option">Pilihan 3</div>
<div class="option">Pilihan 4</div>
<div class="option">Pilihan 5</div>
</div>
</div>
</div>
<button type="submit">kirim</button>
</form>
Kita menggunakan
div
class select untuk menggantikan native select
html, dan div
class option untuk menggantikan tag option
. Kalauinput
숨겨진 kita gunakan untuk mengirim 값 다리 옵션 yang telah dipilih oleh 사용자, yang kita akan 설정 값 nya menggunakan javacsript.마숙케 바기안 스타일링, 베리굿 코드냐.
* {
box-sizing: border-box;
}
label {
display: block;
margin-bottom: 5px;
}
input, .select-input {
width: 100%;
padding: 6px 15px;
border-radius: 3px;
border: 1px solid rgb(174, 179, 206);
}
.form-group {
width: 25%;
margin-bottom: 10px;
}
.options {
opacity: 0;
width: 0;
height: 0;
transition: height .5s ease;
box-shadow: 0px 0px 5px rgba(0, 0, 0, .2);
margin: 4px 0;
border-radius: 4px;
}
.active {
opacity: 1;
width: 100%;
height: 180px;
}
.option {
white-space: nowrap;
padding: 7px 15px;
cursor: pointer;
transition: background .2s ease;
}
.option:hover {
background: rgb(174, 179, 206);
}
button {
position: relative;
z-index: 2;
}
Pertama kita set display dari
label
menjadi block agar input form turun ke bawah, lalu set padding
, margin
, dan border-radius
agar tampilan lebih rapih dan tidak monoton.Kita 스타일링 클래스 선택 입력 sebagaimana 입력 seharusnya, yang nantinya akan 사용자 gunakan untuk memilih. Untuk class options(옵션 래퍼) kita kondisikan diawal agar tidak muncul, menggunakan
opacity
, width
dan kita beri transisi untuk height
agar ketikakebawpertiah .Untuk class active nantinya akan muncul ketika select input diklik oleh user, height nya bisa disesuaikan dengan berapa option yang ada. Kenapa kita perlu set
height
secara statis ?, karena untuk memberikan transisi, kalau kita set jadi max-content, tidak akan ada transisi ketika muncul.Masuk ke bagian terakhir yaitu javascript, 베리쿠트 코드 nya.
const select = document.querySelector('.select-input')
const container = document.querySelector('.options')
const options = document.querySelectorAll('.option')
const input = document.getElementById('hidden')
select.addEventListener('click', function() {
container.classList.toggle('active')
})
options.forEach(option => {
option.addEventListener('click', function() {
const text = option.textContent;
select.textContent = text;
input.value = text;
container.classList.toggle('active')
})
})
Pertama kita select semua element yang dibutuhkan, lalu kasih event ke select-input ketika di klik memunculkan atau menghapus class active.
Setelah option muncul, yang kita lakukan adalah mengambil text yang dipilih user menggunakan textContent, mereplace value dari select-input, men-set 옵션 값 yang kita pilih ke 입력 숨겨진 yang sudah kita siapkan dan menghapus class active untuk menyembunyikan kembali 옵션
세키안 튜토리얼 singkat nya, semoga bermanfaat, mohon maaf kalau ada salah, terimakasih.
Reference
이 문제에 관하여(사용자 정의 선택 양식 menggunakan css dan javascript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anggihseptiawan/custom-select-form-menggunakan-css-dan-javascript-114g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)