V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zzm88104
V2EX  ›  CSS

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

  •  
  •   zzm88104 · Jun 3, 2022 · 1962 views
    This topic created in 1425 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   ·   3302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 13:27 · PVG 21:27 · LAX 06:27 · JFK 09:27
    ♥ Do have faith in what you're doing.