CSSStyleDeclaration  保存dom元素的style

原文链接: CSSStyleDeclaration  保存dom元素的style

上一篇: zsh 基本变量 条件和循环

下一篇: zsh 实现 emcc_setup函数

可以用下面这个库转换对象格式为字符串格式

https://www.npmjs.com/package/to-style

const toStyle = require('to-style');

const style = {
  width: 100,
  height: '100px',
  'font-size': '12px',
};

const s = toStyle.string(style);
console.log('s', s);
const obj = toStyle.object(style);
console.log('obj', obj);

up-963821e1d0a11d16d99f3d1c539b05110ee.png

在使用animejs将dom元素变换后, 需要再次回复原位, 此时直接还原style对象是不行的, 需要使用cssText属性

每个都需要参数, 所以最简单的还是直接使用cssText

Method Description
getPropertyPriority() Returns whether or not the specified CSS property has the "important!" priority set
getPropertyValue() Returns the value of the specified CSS property
item() Returns the CSS property name from a CSS declaration block, by index
removeProperty() Removes a CSS property from a CSS declaration block
setProperty() Sets a new or modifies an existing CSS property in a CSS declaration block

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/animejs/3.2.0/anime.min.js"></script>
    <style>
      .box {
        width: 100px;
        height: 100px;
        background-color: deepskyblue;
        position: absolute;
      }
    </style>
  </head>
  <body>
    <div style="left: 200px; top: 200px;" class="box" id="box"></div>

    <script>
      const box = document.getElementById("box");
      console.log(box.style);
      console.log(box.style.cssText);
      console.log(box.style.width);
      console.log(box.style.left);

      const oldStyle = { ...box.style };
      console.log("oldStyle", oldStyle);
      const oldStyleText = box.style.cssText;
      console.log("oldStyleText", oldStyleText);

      anime({
        targets: box,
        left: ["200px", "600px"],
        duration: 1000,
        delay: 0,
        complete:()=>{
            // 这样是不生效的
            // box.style = oldStyle
            box.style = oldStyleText
        }
      });
    </script>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值