zzm88104
V2EX  ›  CSS

背景用 var 时,如果另一个 var 更改了,背景会闪白

  •  
  •   zzm88104 · Jun 3, 2022 · 2019 views
    This topic created in 1454 days ago, the information mentioned may be changed or developed.

    如题,最近刚知道 css 可以用 var 语法动态更新,但现在遇到了一个问题:如果背景用 var 的话,其他 var 变化的时候背景就会闪一下,如果是连续变化就会一直闪白。感觉原因是更新其中一个 var ,全部 var 都会重新载入一遍。。。

    如何解决这个问题?

    示例代码: 这个例子里,如果实时改变--color1 ,背景会一直闪白 https://jsfiddle.net/5ct9z6wL/

    <div id='background_img'>
    
    </div>
    
    <span id="another_var">asdfadfs</span>
    
    <style>
    #background_img{
    background: var(--background_img_url);
        width: 661px;
        height: 431px;
    }
    
    #another_var{
    color:var(--color1);
    }
    
    :root{
    --background_img_url:url('https://i.imgur.com/GHiyiSx.jpeg');
    --color1:red;
    
    }
    </style>
    
    3 replies    2022-06-03 10:46:13 +08:00
    zcf0508
        1
    zcf0508  
       Jun 3, 2022   ❤️ 1
    你是指在 jsfiddle 里的 css 区域直接改吗,那是因为 jsfiddle 重新渲染了

    你直接用 js 控制就可以了

    document.getElementsByTagName('body')[0].style.setProperty('--color1', 'green')
    zzm88104
        2
    zzm88104  
    OP
       Jun 3, 2022
    @zcf0508 #1
    https://imgur.com/a/gOGVTIe

    不是 jsfiddle 重新渲染的闪白,是图片重新载入,如动图所示
    zzm88104
        3
    zzm88104  
    OP
       Jun 3, 2022
    。。。原来开着 f12 并且 diasble cache 才会闪,关掉 f12 或者 disable cache 就不闪了
    @zcf0508 #1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3260 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:03 · PVG 20:03 · LAX 05:03 · JFK 08:03
    ♥ Do have faith in what you're doing.