ホームページ  >  に質問  >  本文

javascript - vueでコンポーネント自体の高さを取得する方法

高さが可変のポップアップ ボックスを作成したいので、配置する必要があります。ポップアップ ボックスは下部または先頭にポップアップする可能性があります。ただし、コンテンツは可変であるため、その高さは必要ですダウンロードして、現在コンポーネント内の高さを取得する方法
私の現在のアプローチは、created()classname を使用して、コンポーネントの p を取得しますが、初期値が in data() にあるため、コンポーネントの高さはデフォルトで 0 に設定されます。
data() の高さは変更されますが、p が取得されません。 ###作成した() {### リーリー 印刷結果の curHeight が定義されていません。解決策を見つけてください

世界只因有你世界只因有你2674日前1198

全員に返信(5)返信します

  • 给我你的怀抱

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

    element.offsetHeight
    // vue では、ref を使用して実際の DOM を取得してください
    // マウントされたフックで呼び出され、DOM がレンダリングされた後にトリガーされます

    返事
    0
  • 曾经蜡笔没有小新

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

    リーリー

    返事
    0
  • 欧阳克

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

    作成されたフック dom ノードはまだページに挿入されていません
    マウントされたフック関数で呼び出す必要があります

    要素の高さを取得するには、dom.clientHeight または dom.getBoundingClientRect().height を使用します🎜

    返事
    0
  • 漂亮男人

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

    @林小信 呼び出し時にv-ifを使ったのでtrueにすると毎回createされるのでcreatedに入れることもできますが、nextTickについても教えていただきました 使ったことないですがまずは試してみてください。それはあなたのやり方です。
    現在、最外層 p には高さがないため、その高さになるようにサブ p の高さを加算することによってのみ取得できます。おそらく、これを作成するときにこれを考慮しなかったのかもしれません。成分。

    this.$nextTick(() => {

    リーリー

    // console.log(cur);

    リーリー

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

    リーリー

    他に良い答えがない場合は、あなたの回答を受け入れます

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-06-26 11:00:50

    実際のサイズの.clientWidthと.clientHeightを取得します
    .heightのような取得メソッドはないので未定義です

    返事
    0
  • キャンセル返事