Stylized console logging

后端 未结 3 471
渐次进展
渐次进展 2020-12-23 12:37

When I\'m on Facebook and have the console open, I see this image below. How do they do this?

\"enter

相关标签:
3条回答
  • 2020-12-23 12:48

    Just like in Firebug you can use %c to style console log output. Look how we could implement Facebook's example:

    console.log("%cStop!", "color: red; font-family: sans-serif; font-size: 4.5em; font-weight: bolder; text-shadow: #000 1px 1px;");
    

    Facebook's example

    Since it supports CSS properties, we can even "draw" images in there:

    (function(url) {
      // Create a new `Image` instance
      var image = new Image();
    
      image.onload = function() {
        // Inside here we already have the dimensions of the loaded image
        var style = [
          // Hacky way of forcing image's viewport using `font-size` and `line-height`
          'font-size: 1px;',
          'line-height: ' + this.height + 'px;',
    
          // Hacky way of forcing a middle/center anchor point for the image
          'padding: ' + this.height * .5 + 'px ' + this.width * .5 + 'px;',
    
          // Set image dimensions
          'background-size: ' + this.width + 'px ' + this.height + 'px;',
    
          // Set image URL
          'background: url('+ url +');'
         ].join(' ');
    
         // notice the space after %c
         console.log('%c ', style);
      };
    
      // Actually loads the image
      image.src = url;
    })('https://i.cloudup.com/Zqeq2GhGjt-3000x3000.jpeg');

    Displaying an image on console log

    0 讨论(0)
  • 2020-12-23 12:51

    I wrapped this solution in a nice library:

    https://www.npmjs.com/package/console-log-img

    It can also display images from a Canvas or Image element, ImageBitmap and more!

    0 讨论(0)
  • 2020-12-23 13:15

    For those who have two images, repeated, add background no-repeat as @BayyMekenique says but also change this line:

    code 'line-height: ' + this.height + 'px;', code

    to this:

    code 'line-height: ' + this.height % 2 + 'px;', code

    0 讨论(0)
提交回复
热议问题