npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@zhangyida_1990/watermark

v1.1.1

Published

Watermark is a simple and quick library to draw watermark on HTML element.

Downloads

6

Readme

Introduction

Watermark is a simple and quick library to draw watermark on HTML element.

new Watermark().set({
  // some options
}).mount('body').draw().destory();
new Watermark('body', {
  textArray: ['Hello, world!'],
  rotate: Math.PI / 6,
  color: #aaa
}).draw();

Get Started

Installatin

yarn add @zhangyida_1990/watermark

API

constructor([el][, options])

  • Arguments:
      el {String | HTMLElement}['']       selector or html element
      options {Object} [{...}]             options for watermark
        textArray {Array} [['example']]   text list to display`
        fontSize {Number} [26]            font size`
        fontFamily {String} ['serif']     font family`
        padding {Number} [25]             watermark wrapper padding with text`
        lineHeight {Number} [-1]          text line height`
        rotate {Number} [0]               the angle of rotate, must in range of (-PI/2, PI/2)
        fontScale {Number} [0.5]          Half-width and full-width fonts width ratio
        color {String} ['#eeeeee']        text color
        auto {Boolean} [true]             whether add background to mounted element automatically
        observe {Boolean} [true]          whether observe background of mounted element
        openInvisibleWatermark { Boolean } [false] open invisible watermark
  • Example:
    • new Watermark();
    • new Watermark('body', {
        textArray: [
          'example',
          '你好,欢迎使用',
          'Hello, 世界'
        ],
        fontSize: 16,
      });
  • Note: If you set options.auto = false, Watermark will never add background to the mounted element, you must do it manually. for example:
    
      /*
       * use api
       */
      const watermark = new Watermark('body', { auto: false });
      // ... do some action
      watermark.draw();
      // you can access canvas by watermark.canvas properity
      watermark.render();   // must after draw call
    
      /*
       * use pure js
       */
      const watermark = new Watermark('body', {
        auto: false,
      });
      watermark.draw();
      const canvas = watermark.draw().canvas;
      const dataUrl = canvas.toDataURL();
      const body = document.body;
      body.style.background = `url(${dataUrl})`;

mount(el)

  • Arguments:

    • el {String | HTMLElement} selector or html element
  • Usage:

    If a watermark instance not mount any element when is was created, you can use mount function to mount a element for it.

  • Example:

    • const watermark = new Watermark({
        color: '#cccccc'
      }); // create a instance of Watermark
      watermark.mount('body');  // mount to document.body
      // watermark.draw();  // dont fotget to use draw() to display watermark on mounted element

set(options)

  • Arguments:

    • options {Object}[{...}] options for watermark
  • Usage:

    It's default value is same as constructor You can use set function to re-configurate watermark style

  • Example:

    •   const watermark = new Watermark('body', {
          // your options
        });
        // if you want to re-configurate
        watermark.set({
          // your new options
        });
        // watermark.draw();  must use draw() to display

draw()

  • Usage:

    use this function to render watermark on the mounted element.

  • Example:

    • new Watermark('body').draw();
    • new Watermark().set().mount().draw();
    • new Watermark('body').set().draw();

destory()

  • Usage:

    • unmount element
    • disconnect mutation observer
    • change options to default value
  • Example:

    • new Watermark().set().mount().destory();

render()

  • Usage:

    • add background to mounted element
  • Note:

    • only used in situation that options.auto is setted to false

observer()

  • Usage:

    • add observer that can observe background of mounted element
  • Note:

    • only used in situation that options.observe is setted to false

Contributors

If you are interested in this project, welcome to fork and pull request.

License

MIT License

Copyright (c) 2018-present, tyx1703