javascript styled-componentsとhue-rotateで1枚の画像を怠惰にカラフルにするref:https://qiita.com/terrierscript/items/02

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript styled-componentsとhue-rotateで1枚の画像を怠惰にカラフルにするref:https://qiita.com/terrierscript/items/02相关的知识,希望对你有一定的参考价值。

const getAngle = (idx, max) => {
  console.log(idx);
  return (360 * idx) / max;
};
const MockAvaterManual = styled.img`
  filter: hue-rotate(${({ idx, max }) => `${getAngle(idx, max)}deg`});
`;

class App extends Component {
  render() {
    return (
      <MockAvaterManual src={icon} width="80" max={8} idx={0} />
    )
  }
}
import React, { Component } from "react";
import icon from "./icon.png";
import styled from "styled-components";

const randomAngle = () => {
  const num = 7; // ランダムに出したい色数
  return (Math.ceil(Math.random() * num) * 360) / num;
};

// ここでhue-rotate使う
const MockAvater = styled.img`
  filter: hue-rotate(${() => `${randomAngle()}deg`});
`;

class App extends Component {
  render() {
    return (
      <div className="App">
        <MockAvater src={icon} width="80" />
      </div>
    );
  }
}

以上是关于javascript styled-componentsとhue-rotateで1枚の画像を怠惰にカラフルにするref:https://qiita.com/terrierscript/items/02的主要内容,如果未能解决你的问题,请参考以下文章

react——css-in-js——styled-components库——定义样式——样式继承——属性传递

Styled-components vs Emotion - 如何在 Styled-components 上重新应用 css`style` 函数

styled-components - 为啥在组件样式之后注入全局样式?

使用 styled-components 在组件/元素之间共享样式

styled-components:使用额外的样式扩展现有组件

styled-components 弃用 injectGlobal