sholo.js 761 字节
Newer Older
K
Kamran Ahmed 已提交
1 2
import Overlay from './overlay';
import Element from './element';
K
Kamran Ahmed 已提交
3
import './polyfill';
4

K
Kamran Ahmed 已提交
5 6 7 8
/**
 * Plugin class that drives the plugin
 */
export default class Sholo {
9 10 11 12 13
  constructor({ opacity = 0.75, padding = 5 } = {}) {
    this.overlay = new Overlay({
      opacity,
      padding,
    });
14 15
  }

K
Kamran Ahmed 已提交
16 17
  highlight(selector) {
    let domElement;
18

K
Kamran Ahmed 已提交
19 20 21 22 23 24 25
    if (typeof selector === 'string') {
      domElement = document.querySelector(selector);
    } else if (typeof selector === 'object') {
      domElement = selector;
    } else {
      throw new Error('Element can only be string or the dom element');
    }
26

K
Kamran Ahmed 已提交
27 28 29 30 31 32
    if (domElement) {
      const element = new Element(domElement);
      this.overlay.highlight(element);
    } else {
      this.overlay.clear();
    }
33 34
  }
}