js实现单位互换px/cm/mm篇

最近想写一个js控制打印的插件,发现通常网页布局单位用px,而我们打印设置的时候通常使用cm、mm作为单位,必须进行单位转化,但网上的方法不够完美,自己就用js封装了一个模块,进行cm、mm、px之间的转换。

js代码

;(function(root, factory){
    if(typeof define === 'function' && define.amd){
        define(['pluc'], factory);
    }else if(typeof exports === 'object'){
        module.exports = factory(require('pluc'));
    }else{
        root.pluc = factory('pluc');
    }
})(this, function(pluc){
    'use strict';
    var ratio = 0; 
    var div = document.createElement('div');
    div.style.width = '1cm';
    div.id = 'puc';
    document.body.appendChild(div);
    var w = getComputedStyle(div, null).width;
    ratio = w.substr(0, w.length - 2);
    div.parentNode.removeChild(div);
    return {
        px2cm :function(px) {
            return Math.round(px * 10 / ratio) / 10;
        },
        px2mm : function(px) {
            var r = ratio / 10;
            return Math.round(px / r);
        },
        cm2px : function(cm) {
            return Math.round(cm * ratio);
        },
        mm2px : function(mm) {
            var r = ratio / 10;
            return Math.round(mm * r);
        }
    }
})

示例

pluc.px2cm(100) //将100px转化为单位为cm的长度值,结果取1位小数
pluc.px2mm(100) //将100px转化为单位为mm的长度值,结果取整数
pluc.cm2px(10) //将10cm转化为单位为px的长度值,结果取整数
pluc.mm2px(10) //将10mm转化为单位为px的长度值,结果取整数

效果如下:


pluc效果图.png

结语

语言是死的,只要灵活运用,达到效果即是好!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。