動的に変化する背景色に基づいてテキストの色を動的に変更する方法

ジョナサン・リー

新しいウェブサイトを立ち上げていますが、コントラストを維持するために、刻々と変化する背景色に基づいてテキストの色を変更する必要があります。私はSassに関係のない答えをウェブで探しましたが、どれもうまくいきませんでした...

JavaScriptを試してみましたが、手動で変更した固定色の場合にのみ機能します。

私の現在のファイル:https//codepen.io/jonathanlee/pen/wZXvRY

var color = function getRandomColor() {
  var letters = '0123456789ABCDEF'.split('');
  var color = '#';
  for (var i = 0; i < 6; i++) {
    color += letters[Math.floor(Math.random() * 16)];
  }
  return color;
}
setInterval(function() {
  document.getElementById("test").style.backgroundColor = color(); //() to execute the function!
}, 3000);

var ww = function isDarkColor(rgb) {
  return Math.round((
    parseInt(rgb[0], 10) * 299 +
    parseInt(rgb[1], 10) * 587 +
    parseInt(rgb[2], 10) * 114) / 1000) <= 140
}

if (ww <= 140) {
  document.getElementById("test").style.color = '#fff';
} else {
  document.getElementById("test").style.color = '#000';
}

私が試したが機能しなかった他の解決策の1つ:http//jsfiddle.net/QkSva/

function isDark(color) {
  var match = /rgb\((\d+).*?(\d+).*?(\d+)\)/.exec(color);
  return (match[1] & 255) +
    (match[2] & 255) +
    (match[3] & 255) <
    3 * 256 / 2;
}
$('div').each(function() {
  console.log($(this).css("background-color"))
  $(this).css("color", isDark($(this).css("background-color")) ? 'white' : 'black');
});

実際の例は、私が取り組んでいるWebサイトhttps://nepmelbourne.com/qの代替ホームページですダイナミックな背景がありますが、白いテキストとのコントラストがよくない色がいくつかあります。

ショイエブシェイク

これを行う1つの方法は、次のように背景色の反対の色をテキストに設定することです。

function invertColor(hex, bw) {
    if (hex.indexOf('#') === 0) {
      hex = hex.slice(1);
    }
    // convert 3-digit hex to 6-digits.
    if (hex.length === 3) {
      hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
    }
    if (hex.length !== 6) {
      throw new Error('Invalid HEX color.');
    }
    var r = parseInt(hex.slice(0, 2), 16),
      g = parseInt(hex.slice(2, 4), 16),
      b = parseInt(hex.slice(4, 6), 16);
    if (bw) {
      // http://stackoverflow.com/a/3943023/112731
      return (r * 0.299 + g * 0.587 + b * 0.114) > 186 ?
        '#000000' :
        '#FFFFFF';
    }
    // invert color components
    r = (255 - r).toString(16);
    g = (255 - g).toString(16);
    b = (255 - b).toString(16);
    // pad each with zeros and return
    return "#" + padZero(r) + padZero(g) + padZero(b);
  }

  function padZero(str, len) {
    len = len || 2;
    var zeros = new Array(len).join('0');
    return (zeros + str).slice(-len);
  }

  var color = function getRandomColor() {
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++) {
      color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
  }

  setInterval(function() {
    var bgColor = color();
    var textColor = invertColor(bgColor,true);
    document.getElementById("test").style.backgroundColor = bgColor; //() to execute the function!
    document.getElementById("test").style.color = textColor;
  }, 3000);
<div id="test">This is some text</div>

から取得した反対のカラーコード現在の色に従って反対の色を生成するにはどうすればよいですか?

invertColor()に追加のパラメーターbwを追加しました。bwがtrueに設定されている場合、背景が明るい場合はテキストの色が黒になり、その逆も同様です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テキストの変更に基づいて背景色を変更する

分類Dev

Angularjsの背景色に基づいてテキストの色を自動的に変更するにはどうすればよいですか?

分類Dev

テキストコンテンツに基づいて背景色を動的に変更する

分類Dev

背景色の入力に基づいて、テキストの前景色の色を変更します

分類Dev

背景色に基づいて色を変更する

分類Dev

swiftuiでテキストの背景色を動的に変更する方法は?

分類Dev

別の列のテキストに基づいてセルの背景色を変更する

分類Dev

条件値に基づいて入力テキストの背景色を変更する

分類Dev

reactJsを使用して背景色に基づいてフォントの色を変更する方法

分類Dev

動的な背景色に一致するようにテキストの色を変更します

分類Dev

値に基づいて背景色を変更する方法

分類Dev

背景色に応じてテキストの色を変更する

分類Dev

背景に基づいてテキストの色を変更する

分類Dev

ListBoxItem値に基づいてListBoxItemの背景色を変更する方法

分類Dev

セル値に基づいて行の背景色を変更する方法

分類Dev

jqueryでテキストの色を背景色に変更する

分類Dev

入力値に基づいて背景色を変更する

分類Dev

テキスト値に基づいてテーブルセルのテキストと背景色を変更する

分類Dev

幅を動的に変更するテキストの背景のみに背景色が必要

分類Dev

Canvasの文字列に基づいてテキストを動的に変更する

分類Dev

$ valueに基づいてテキストの色を変更する方法

分類Dev

Cssを使用して背景色を動的に変更する方法

分類Dev

選択時にテーマの背景色とテキストの色を変更する方法

分類Dev

PHPの動的な値に基づいて入力テキストフィールドの背景色を変更するにはどうすればよいですか?

分類Dev

特定のliタグをターゲットにして背景色とテキスト色を変更する

分類Dev

背景色に基づいてPS1の色を変更しますか?

分類Dev

他のdivの背景色に基づいてdivの背景色を変更する

分類Dev

セルの値に基づいて行の背景色を変更する

分類Dev

RadioButtonに基づいてグリッドの背景色を変更する

Related 関連記事

  1. 1

    テキストの変更に基づいて背景色を変更する

  2. 2

    Angularjsの背景色に基づいてテキストの色を自動的に変更するにはどうすればよいですか?

  3. 3

    テキストコンテンツに基づいて背景色を動的に変更する

  4. 4

    背景色の入力に基づいて、テキストの前景色の色を変更します

  5. 5

    背景色に基づいて色を変更する

  6. 6

    swiftuiでテキストの背景色を動的に変更する方法は?

  7. 7

    別の列のテキストに基づいてセルの背景色を変更する

  8. 8

    条件値に基づいて入力テキストの背景色を変更する

  9. 9

    reactJsを使用して背景色に基づいてフォントの色を変更する方法

  10. 10

    動的な背景色に一致するようにテキストの色を変更します

  11. 11

    値に基づいて背景色を変更する方法

  12. 12

    背景色に応じてテキストの色を変更する

  13. 13

    背景に基づいてテキストの色を変更する

  14. 14

    ListBoxItem値に基づいてListBoxItemの背景色を変更する方法

  15. 15

    セル値に基づいて行の背景色を変更する方法

  16. 16

    jqueryでテキストの色を背景色に変更する

  17. 17

    入力値に基づいて背景色を変更する

  18. 18

    テキスト値に基づいてテーブルセルのテキストと背景色を変更する

  19. 19

    幅を動的に変更するテキストの背景のみに背景色が必要

  20. 20

    Canvasの文字列に基づいてテキストを動的に変更する

  21. 21

    $ valueに基づいてテキストの色を変更する方法

  22. 22

    Cssを使用して背景色を動的に変更する方法

  23. 23

    選択時にテーマの背景色とテキストの色を変更する方法

  24. 24

    PHPの動的な値に基づいて入力テキストフィールドの背景色を変更するにはどうすればよいですか?

  25. 25

    特定のliタグをターゲットにして背景色とテキスト色を変更する

  26. 26

    背景色に基づいてPS1の色を変更しますか?

  27. 27

    他のdivの背景色に基づいてdivの背景色を変更する

  28. 28

    セルの値に基づいて行の背景色を変更する

  29. 29

    RadioButtonに基づいてグリッドの背景色を変更する

ホットタグ

アーカイブ