//显示led类型的数字的js代码工具类 class LedStyle { /* width:led容器的宽度,默认为50px height:led容器的高度,默认为100px(实际高度要大于100px,实际高度为height+lineWidth) lineWidth:led灯的宽度,默认为5px selector:需要展示led灯的选择器名称 color:led灯的颜色,默认为红色 italics:倾斜角度,默认为0(不倾斜) */ constructor(width, height, lineWidth,selector, color, italics) { this.width = width; this.height = height; this.lineWidth = lineWidth; this.color = color; this.italics = italics; //创建对象的时候生成一个随机的class编码 this.selector = selector; //如果在初始化的时候没有指定参数,都使用以下默认值进行初始化 this.setLedStyle(width?width:50, height?height:100, lineWidth?lineWidth:5, color?color:'red', italics?italics:'0') } setLedStyle(width = 50, height = 100, lineWidth = 5, color = 'red', italics = '0') { let style = ` `; $("body").append(style); } //对单个led灯的样式进行样式设置 setValue(v, random) { let styleLed = ''; switch(v.toString()) { case '0': styleLed = ".led-segment1,.led-segment2,.led-segment4,.led-segment5,.led-segment6,.led-segment7"; break; case '1': styleLed = ".led-segment2,.led-segment4"; break; case '2': styleLed = ".led-segment1,.led-segment2,.led-segment3,.led-segment5,.led-segment7"; break; case '3': styleLed = ".led-segment1,.led-segment2,.led-segment3,.led-segment4,.led-segment5"; break; case '4': styleLed = ".led-segment2,.led-segment3,.led-segment4,.led-segment6"; break; case '5': styleLed = ".led-segment1,.led-segment3,.led-segment4,.led-segment5,.led-segment6"; break; case '6': styleLed = ".led-segment1,.led-segment3,.led-segment4,.led-segment5,.led-segment6,.led-segment7"; break; case '7': styleLed = ".led-segment1,.led-segment2,.led-segment4"; break; case '8': styleLed = ".led-segment1,.led-segment2,.led-segment3,.led-segment4,.led-segment5,.led-segment6,.led-segment7"; break; case '9': styleLed = ".led-segment1,.led-segment2,.led-segment3,.led-segment4,.led-segment5,.led-segment6"; break; case '-': styleLed = ".led-segment3"; break; default: styleLed = ""; break; } //对当前的单个led样式进行记录,每个led灯的样式都应该是唯一的,所以这里使用了日期加随机数生成class选择器 var styleLedArr = styleLed.split(',').map((item, index) => { return '.' + random + ' ' + item; }) return styleLedArr.join(',') + '{opacity:1 !important} '; } //设置数值的方法 setValues(values) { let selector = this.selector; //清空原值 $(selector).html(""); /*此处代码通过自己选择开启,就是一个只允许输入数字,小数点,负数符的正则判断,可以不打开,不打开的时候,输入非数字、小数点、负数符的时候显示空 if(!/^[\d.-]+$/.test(values.toString())){ alert("请传入数字类型的值!"); return; }*/ let vArr = values.toString().split(''); var style = ''; $("body").append(style); $(selector).append(ledHtml); } } /* 使用示例 html部分:
js部分: 给类名为led-segment-parent(命名自定义)的节点显示宽度为50px、高度为100px、灯的线宽5px、颜色为橘色的,向右倾斜10度的led灯 let led = new LedStyle(50,100,5,'.led-segment-parent','orange','-10'); led.setValues('0123456789'); let led1 = new LedStyle(100,200,10,'.led-segment-parent1','skyblue','10'); led1.setValues('123'); */