Rumah  >  Soal Jawab  >  teks badan

Skalakan teks agar sesuai dengan saiz penyemak imbas dengan peralihan

Saya mempunyai beberapa teks yang ingin saya ubah saiz kepada 100% penyemak imbas apabila menuding di atas butang. Bagaimanakah saya boleh menjadikan teks ini muat dalam penyemak imbas/bekas?

Saya tahu tentang menggunakan font size ,您可以执行类似 font-size:100vw tetapi animasi saiz fon sangat tidak stabil jadi saya tidak boleh menggunakan kaedah ini.

http://jsfiddle.net/0n15mfyL/

Bagi mereka yang tertanya-tanya tentang dithering, ia adalah ketara apabila fon dikecilkan: http://jsfiddle.net/rbk48upd/

P粉459578805P粉459578805424 hari yang lalu681

membalas semua(1)saya akan balas

  • P粉729518806

    P粉7295188062023-09-09 09:58:14

    Saya sedang mempertimbangkan requestAnimationFrame()

    const 
      hoverMe        = document.querySelector('#hover-me')
    , animTextSizing = document.querySelector('#anim-text-sizing')
    , txtSizeStart   = parseInt(window.getComputedStyle(animTextSizing).getPropertyValue('font-size'))
      ;
    let sizeLimit = 0,  currentTxtSize = txtSizeStart
      ;
    hoverMe.onmouseover =_=>
      {
      sizeLimit = document.body.clientWidth;
      animGrow();
      }
    hoverMe.onmouseout =_=>
      {
      sizeLimit = txtSizeStart;
      currentTxtSize++
      animReduce();
      }
    function animGrow()
      {
      animTextSizing.style['font-size'] = `${++currentTxtSize}px`;
    
      if ( animTextSizing.clientWidth < sizeLimit)
        requestAnimationFrame(animGrow);
      }
    function animReduce()
      {
      animTextSizing.style['font-size'] = `${--currentTxtSize}px`;
    
      if ( currentTxtSize > sizeLimit)
        requestAnimationFrame(animReduce);
      }
    * {
      margin  : 0;
      padding : 0;
    }
    #anim-text-sizing {
      font-size   : 30px;
      width       : fit-content;
      white-space : nowrap;
      background  : #aabfe5;
      }
    #hover-me {
      position   : fixed;
      background : red;
      color      : white;
      top        : 50%;
      left       : 50%;
      padding    : .5rem;
      cursor  : zoom-in;
      }
      <div id="hover-me">Hover me</div>
      <div id="anim-text-sizing"> Welcome to this Page </div>

    balas
    0
  • Batalbalas