Saya mencoba menerapkan menu navigasi dropdown multilevel horizontal. Segera di bawah menu (secara vertikal), saya punya video YouTube yang disematkan melalui iframe. Jika saya mengarahkan kursor ke salah satu item nav level utama di Firefox, menu tarik-turun muncul dengan benar di atas video.
Di Chrome dan IE9, bagaimanapun, hanya sepotong dropdown terlihat di wilayah kecil ruang yang saya miliki antara menu dan iframe. Sisanya tampaknya berada di belakang iframe.
Masalahnya tampaknya terkait dengan video YouTube, bukan iframe. Untuk mengujinya, saya mengarahkan iframe di situs web lain daripada video, dan menu dropdown bekerja dengan baik, bahkan di IE.
- Pertanyaan 1: WTF?
- Pertanyaan 2: Mengapa, meskipun saya secara eksplisit memasang
z-index:-999 !important;
iframe apakah masalah ini masih terjadi?
Apakah ada beberapa CSS internal yang menyertakan kode embed YouTube yang entah bagaimana mengesampingkan hal-hal?
<embed wmode="transparent" ...>
bagian adalah semua yang Anda perlu (setidaknya di firefox) dan tidak perlu khawatir tentang pengaturan wmode diurl
'sparam
' s atauiframe
sJawaban:
Coba tambahkan wmode, sepertinya ada dua parameter.
Saya tidak dapat menemukan alasan teknis mengapa ia berfungsi, atau lebih banyak penjelasan tetapi lihatlah kueri ini .
atau ini
sumber
wmode
juga berfungsi meskipun tidak didokumentasikan.Jawaban Joshc ada di jalur yang benar, tetapi saya menemukan bahwa itu benar-benar menghapus
?rel=0
querystring dan menggantinya dengan?wmode=transparent
item - yang memiliki efek menampilkan daftar Video YouTube yang Disarankan pada akhir pemutaran, meskipun Anda awalnya tidak Aku tidak ingin ini terjadi.Saya mengubah kode sehingga
src
atribut dari video yang disematkan dipindai terlebih dahulu, untuk melihat apakah sudah ada tanda tanya?
di dalamnya (karena ini menunjukkan keberadaan string kueri yang sudah ada sebelumnya, yang mungkin mirip?rel=0
tapi bisa secara teori menjadi apa pun yang dipilih YouTube untuk ditambahkan di masa mendatang). Jika sudah ada string kueri di sana, kami ingin menyimpannya, bukan memusnahkannya, karena itu merupakan pengaturan yang dipilih oleh siapa pun yang disisipkan dalam video YouTube ini, dan mereka mungkin memilihnya karena suatu alasan!Jadi, jika
?
ditemukan,wmode=transparent
akan ditambahkan menggunakan format:&mode=transparent
untuk hanya menandai di akhir string kueri yang sudah ada sebelumnya.Jika tidak ada
?
yang ditemukan, maka kode akan bekerja dengan cara yang persis sama seperti yang awalnya (dalam posting toomanyairmiles ), menambahkan?wmode=transparent
seperti string kueri baru ke URL.Sekarang, terlepas dari apa yang mungkin atau mungkin tidak ada di akhir URL YouTube sebagai string kueri, itu akan dipertahankan, dan
wmode
parameter yang diperlukan akan disuntikkan atau ditambahkan tanpa merusak apa yang ada di sana sebelumnya.Berikut kode untuk dimasukkan ke
document.ready
fungsi Anda :sumber
opaque
tidakOpaque
(perhatikan kasus)Tambahkan saja salah satu dari dua ini ke url src:
sumber
Saya memiliki masalah yang sama di YouTube iframe hanya menyematkan di penjelajah internet.
Indeks-Z diabaikan total, atau video flash hanya muncul pada indeks setinggi mungkin.
Ini yang saya gunakan, sedikit mengadaptasi skrip jquery di atas.
Kode embed saya, langsung dari YouTube ...
JQuery sedikit diadaptasi dari jawaban di atas ...
Pada dasarnya jika Anda tidak memilih Tampilkan video yang disarankan saat video selesai di pengaturan sematan Anda, Anda memiliki
?rel=0
di bagian akhir"src"
url Anda . Jadi saya telah menambahkan bit ganti jika?rel=0
ada. Kalau?wmode=transparent
tidak, tidak akan berhasil.sumber
Kami hanya dapat menambahkan
?wmode=transparent
ke akhir URL YouTube. Ini akan memberitahu YouTube untuk memasukkan video dengan set wmode. Jadi, kode sematan baru Anda akan terlihat seperti ini: -sumber
Hanya ini yang bekerja untuk saya:
Saya memuatnya di file Wordpress footer.php. Kode ditemukan di komentar di sini (terima kasih Gerson)
sumber
wmode = buram atau transparan di awal string kueri saya tidak menyelesaikan apa pun. Masalah ini bagi saya hanya terjadi di Chrome, dan tidak di semua komputer. Hanya satu cpu. Ini terjadi di vimeo embeds juga, dan mungkin yang lain.
Solusi saya untuk melampirkan ke acara 'ditampilkan' dan 'tersembunyi' dari mod bootstrap yang saya gunakan, tambahkan kelas yang menetapkan iframe menjadi 1x1 piksel, dan hapus kelas saat modal ditutup. Sepertinya itu berfungsi dan mudah diterapkan.
sumber
Jawabannya tidak benar-benar bekerja untuk saya, saya memiliki acara klik pada pembungkus dan yaitu 7,8,9,10 mengabaikan indeks-z, jadi perbaikan saya adalah memberi pembungkus warna latar belakang dan semuanya tiba-tiba bekerja . Al meskipun itu seharusnya transparan, jadi saya mendefinisikan pembungkus dengan warna latar belakang putih, dan kemudian opacity 0,01, dan sekarang berfungsi. Saya juga punya fungsi di atas, jadi bisa jadi kombinasi.
Saya tidak tahu mengapa itu bekerja, saya senang itu bisa.
sumber
Kode Javascript BigJacko bekerja untuk saya, tetapi dalam kasus saya, saya pertama kali harus menambahkan beberapa kode "noconflict" JQuery. Berikut versi revisi yang berfungsi di situs saya:
sumber
Yang Anda butuhkan di iframe adalah:
dan di URL:
sumber