Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk mendapatkan ketinggian komponen itu sendiri dalam vue

Untuk membuat kotak timbul dengan ketinggian berubah-ubah, ia perlu diposisikan Kotak timbul mungkin timbul di bahagian bawah atau di kepala, tetapi kerana kandungannya berubah-ubah, ketinggiannya perlu dikira untuk ditunjukkan. sama ada ia muncul ke atas atau ke bawah , pada masa ini cara mendapatkan ketinggiannya dalam komponen
Pendekatan semasa saya ialah menggunakan classname dalam created() untuk mendapatkan p komponen. . Walau bagaimanapun, memandangkan nilai awal dalam data( ) lalai ketinggian komponen kepada 0 dan menukar ketinggian dalam data() dalam dicipta, tetapi tidak mendapat pcreated()中使用classname得到组件的p但由于初始在data()中将组件高度默认了0,
created中改变data()

dicipta() {

let cur = document.querySelectorAll("p[class='Pop-Over']");
console.log(cur);
let curHeight = cur.height;
console.log(curHeight);
}

Hasil cetakan curHeight tidak dapat ditentukan, sila cari penyelesaian

世界只因有你世界只因有你2674 hari yang lalu1194

membalas semua(5)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-06-26 11:00:50

    elemen.offsetHeight
    // Dalam vue, sila gunakan ref untuk mendapatkan DOM sebenar
    // Dipanggil dalam cangkuk yang dipasang, yang dicetuskan selepas DOM diberikan

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-26 11:00:50

    mounted () {
        this.$nextTick(() => {
            let cur = document.querySelectorAll("p[class='Pop-Over']");
            console.log(cur);
            let curHeight = cur.height;
            console.log(curHeight);
        })
    }

    balas
    0
  • 欧阳克

    欧阳克2017-06-26 11:00:50

    dicipta cangkuk Nod dom belum dimasukkan ke dalam halaman lagi. Ia perlu dipanggil dalam fungsi cangkuk yang dipasang
    Dan untuk mendapatkan ketinggian elemen, gunakan dom.clientHeight, atau dom.getBoundingClientRect().height

    .

    balas
    0
  • 漂亮男人

    漂亮男人2017-06-26 11:00:50

    @林小信 Memandangkan saya menggunakan v-if semasa membuat panggilan, ia akan dibuat setiap kali ia ditetapkan kepada benar, jadi ia boleh diletakkan di dalam create, tetapi anda juga memberitahu saya tentang nextTick ia cara anda.
    Pada masa ini, kerana lapisan paling luar p tidak mempunyai ketinggian, ia hanya boleh diperolehi dengan menambah ketinggian sub-p untuk menjadi ketinggiannya. Mungkin saya tidak mengambil kira perkara ini semasa menulis komponen.

    ini.$nextTick(() => {

          let cur = document.querySelectorAll("p[class='Pop-Over']");

    // console.log(cur);

          let curHeight = 0;
          cur[0].childNodes.forEach(function (item, index, array) {

    // console.log(typeof item.clientHeight);

            curHeight += (typeof item.clientHeight) === 'number' ? item.clientHeight : 0;
          });
          });
              

    Jika tiada jawapan yang lebih baik, saya akan menerima jawapan anda

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-26 11:00:50

    Dapatkan saiz sebenar .clientWidth dan .clientHeight
    Tiada kaedah pemerolehan seperti .height, jadi ia tidak ditentukan

    balas
    0
  • Batalbalas