鍍金池/ 問(wèn)答/HTML/ 如何讓一個(gè)div的背景顏色,隨著鼠標(biāo)的不斷點(diǎn)擊而不斷加深,js代碼怎么寫(xiě)?

如何讓一個(gè)div的背景顏色,隨著鼠標(biāo)的不斷點(diǎn)擊而不斷加深,js代碼怎么寫(xiě)?

可以再?gòu)?fù)雜一點(diǎn),比如左鍵不斷點(diǎn)擊,不斷加深、從淺紅到深紅,直至無(wú)法再加深,右鍵點(diǎn)擊實(shí)現(xiàn)逆操作!

回答
編輯回答
心夠野

顏色可以根據(jù)需要自己調(diào)整一下

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    div {
      width: 300px;
      height: 300px;
      border: 2px solid #000;
    }
  </style>
</head>

<body oncontextmenu="return false">
  <div id='div' onmousedown='divClick(event)'></div>

  <script>
    var bgColor = ['00', '11', '22', '33', '44', '55', '66', '77', '88', '99', 'aa', 'bb', 'cc', 'dd', 'ee', 'ff'];
    var div = document.getElementById('div');

    function changeBg(index) {
      div.setAttribute('style', 'background-color: #' + bgColor[index] + '0000')
      div.setAttribute('data-index', index)
    }
    changeBg(0);

    function divClick(event) {
      var mouse = event.button
      var index = div.getAttribute('data-index')
      if(index == 0 && mouse == 0){
        index++
      }else if(index == (bgColor.length - 1) && mouse == 2){
        index--
      }else if (index > 0 && index < (bgColor.length - 1)) {
        if (mouse == 0) {//左鍵
          index++
        } else if (mouse == 2) {//右鍵
          index--
        }
      }
      changeBg(index);
    }
  </script>
</body>

</html>
2018年5月20日 15:40
編輯回答
久不遇

使用濾鏡可以,具體代碼

const step = 1;
const div = document.getElementById('div');
let percent = 100;
function darken() {
   percent += step;
   div.style.filter =  `brightness(${percent}%)`;
}
div.addEventListener('click', darken, false)
2017年2月4日 21:25
編輯回答
瘋浪

用hsv

2018年3月31日 05:22
編輯回答
夢(mèng)囈

顏色加深變化,可以從顏色十六進(jìn)制 入手
剩下的就是綁定鼠標(biāo)事件改變r(jià)gb值了

2017年7月7日 12:52
編輯回答
爛人

首先幫你理解下你具體加深的原理 控制rgba

黑=>紅  為 rgb的r  從0=>255
白=>紅  為 rgb的gb 從255=>0

圖片描述

<script>
window.onload=function(){
    let num=255;
    document.onclick=function(){
        num--;
        if(num<=0)num=0;
        div1.style.background='rgb(255,'+num+','+num+')';
    }
}
</script>
    <div id="div1" style="width:50px; height:50px;"></div>
2017年9月10日 18:23