js03 - CSS Variables

html部分

  <h2>Update CSS Variables with <span class='hl'>JS</span></h2>

  <div class="controls">
    <label for="spacing">Spacing:</label>
    <input type="range" name="spacing" min="10" max="200" value="10" data-sizing="px">

    <label for="blur">Blur:</label>
    <input type="range" name="blur" min="0" max="25" value="10" data-sizing="px">

    <label for="base">Base Color</label>
    <input type="color" name="base" value="#ffc600">
    <br>
    <code class="result">
      img {
        padding: <label id="code-spacing">10px</label>;
        filter: blur(<label id="code-blur">10px</label>);
        background: <label id="code-base">#8aa8af</label>;
      }
    </code>
  </div>

  <img src="https://source.unsplash.com/7bwQXzbF6KE/800x500">

css部分

<style>
    :root{
      --spacing :11px;
      --blur:5px;
      --base:#8aa8af
    }
    img{
      padding:var(--spacing);
      background:var(--base);
      filter:blur(var(--blur))
    }
    body {
      text-align: center;
    }

    body {
      background: #193549;
      color: white;
      font-family: 'helvetica neue', sans-serif;
      font-weight: 100;
      font-size: 50px;
    }

    .controls {
      margin-bottom: 50px;
    }

    input {
      width:100px;
    }
</style>

使用了css的var()函数。
var()

JS部分

<script>
    let inputs = document.querySelectorAll('.controls input');
    function setValue(){
      //获取单位
      let suffix = this.dataset.sizing || '';
      //获取document中元素style设置值
      document.documentElement.style.setProperty(`--${this.name}`,this.value + suffix)
      //获取显示值
      document.getElementById(`code-${this.name}`).innerText = this.value + suffix
    }
    //修改值
    inputs.forEach(input => input.addEventListener('change',setValue))
    //修改显示值
    inputs.forEach(input => input.addEventListener('mouseover',setValue))
  </script>

使用了js的arr.forEach()以及addEventListener函数。
forEach()
addEventListener()
文中传送部分均为他人文章,此处仅作本人参考,侵删。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值