css demo —— background-blend-mode

224 阅读1分钟

background-blend-mode

属性作用:将背景图片和背景颜色混合处理

scss部分

.box {
    width: 200px;
    height: 200px;
    margin: 10px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    background-image: url(../imgs/bird.jpg);
    background-size: contain;
    background-repeat: no-repeat;
    background-color: pink;
    
    @each $val in normal multiply screen overlay darken lighten color-dodge {
      &.#{$val} {
        background-blend-mode: $val;
      }
    }
 }

js部分

function createEle(tag, attrs = {}, text) {
  let el = document.createElement(tag)
  for (let key in attrs) {
    el.setAttribute(key, attrs[key])
  }
  if (text) {
    el.appendChild(document.createTextNode(text))
  }
  return el
}

let el = document.querySelector('.container')
  , arr = [
    'normal',
    'multiply',
    'screen',
    'overlay',
    'darken',
    'lighten',
    'color-dodge'
  ], frag = document.createDocumentFragment()
  for (let i = 0; i < arr.length; i++) {
    frag.append(createEle('div', { class: `box ${arr[i]}` }, arr[i]))
  }
  el.appendChild(frag)

demo截图

参考 mdn