MediaWiki:Resmark.js — различия между версиями
Vooon (обсуждение | вклад) |
Vooon (обсуждение | вклад) |
||
Строка 87: | Строка 87: | ||
newElm.setAttribute('name', 'line'+(j+1)); | newElm.setAttribute('name', 'line'+(j+1)); | ||
if(val) newElm.setAttribute('value', val); | if(val) newElm.setAttribute('value', val); | ||
+ | newElm.setAttribute('onclick', 'resmark_setResCol(' + (j+1) + ", '" + resmark_colors[i].f + "' )"); | ||
+ | |||
newElm.setAttribute('id', elm.id); | newElm.setAttribute('id', elm.id); | ||
resmark_replDiv(newElm, elm); | resmark_replDiv(newElm, elm); | ||
Строка 116: | Строка 118: | ||
//- other ------------------------------------------------------ | //- other ------------------------------------------------------ | ||
+ | function resmark_setResCol(col, color) | ||
+ | { | ||
+ | elm = document.getElementById('resmark_resistor_' + col); | ||
+ | elm.style.background = color; | ||
+ | } | ||
function resmark_setResCols(colors) | function resmark_setResCols(colors) | ||
{ | { |
Версия 14:07, 3 октября 2007
//<source lang="javascript"> //- Resmark.js ------------------------------------------------------ addOnloadHook(do_resmark_init); var resmark_cols = 3; var resmark_elem = 'res'; var resmark_def_color = "#D9C09C" var resmark_colors = new Array( {f:"white",s:"w"}, {f:"gray",s:"gr"}, {f:"violet",s:"v"}, {f:"blue",s:"b"}, {f:"green",s:"g"}, {f:"yellow",s:"y"}, {f:"orange",s:"o"}, {f:"red",s:"r"}, {f:"brown",s:"br"}, {f:"black",s:"bl"}, {f:"goldenrod",s:"au"}, {f:"gainsboro",s:"ag"} ); var resmark_data = { res: { 3: { 1:{dl:{bl:1,au:1,ag:1},e:{w:'9',gr:'8',v:'7',b:'6',g:'5','y':'4',o:'3',r:'2',br:'1'}}, 2:{dl:{au:1,ag:1},e:{w:'9',gr:'8',v:'7',b:'6',g:'5','y':'4',o:'3',r:'2',br:'1',bl:'0'}}, 3:{dl:{},e:{w:'*1e+9',gr:'*100e+6',v:'*10e+6',b:'*1e+6',g:'*100e+3','y':'*10e+3',o:'*1e+3',r:'*100',br:'*10',bl:'*1',au:'*0.1',ag:'*0.01'}} } } }; function do_resmark_init() { if(document.getElementById('resmark')) { // resmark block exist var ids = new Array( {id:'resmark_radio_elm_res',elm:'radio',nm:'elm',onclick:"resmark_elmRes_click()",'checked':1}, {id:'resmark_radio_elm_cap',elm:'radio',nm:'elm',onclick:"resmark_elmCap_click()"}, {id:'resmark_radio_elm_ind',elm:'radio',nm:'elm',onclick:"resmark_elmInd_click()"}, {id:'resmark_radio_lin_3',elm:'radio',nm:'lin','checked':1}, {id:'resmark_radio_lin_4',elm:'radio',nm:'lin'}, {id:'resmark_radio_lin_5',elm:'radio',nm:'lin'}, {id:'resmark_outp_nom',elm:'text'}, {id:'resmark_outp_dop',elm:'text'} ); var tags = { radio: {t:'input',tp:'radio'}, 'text': {t:'input',tp:'text'} } for(i = 0; i < ids.length; i++) { var old = document.getElementById(ids[i].id); var elmTag = tags[ids[i].elm].t; var newElm = document.createElement(elmTag); if(ids[i]['checked']) newElm.setAttribute('checked', ids[i]['checked']); if(ids[i].onclick) newElm.setAttribute('onclick', ids[i].onclick); if(ids[i].nm) newElm.setAttribute('name', ids[i].nm); if(tags[ids[i].elm].t) newElm.setAttribute('type', tags[ids[i].elm].tp); newElm.setAttribute('id', old.id); resmark_replDiv(newElm, old); } resmark_resetTable() var js = document.getElementById('resmark_js_disabled'); js.parentNode.removeChild(js); } } function resmark_resetTable() { for(i = 0; i < resmark_colors.length; i++) { for(j = 0; j < resmark_cols; j++) { var elm = document.getElementById('resmark_radio_l' + (j+1) + '_' + resmark_colors[i].s); elm.parentNode.style.visibility = (resmark_data[resmark_elem][resmark_cols][j+1]['dl'][resmark_colors[i].s]) ? 'hidden' : 'visible'; var newElm = document.createElement('input'); var val = resmark_data[resmark_elem][resmark_cols][j+1]['e'][resmark_colors[i].s] newElm.setAttribute('type', 'radio'); newElm.setAttribute('name', 'line'+(j+1)); if(val) newElm.setAttribute('value', val); newElm.setAttribute('onclick', 'resmark_setResCol(' + (j+1) + ", '" + resmark_colors[i].f + "' )"); newElm.setAttribute('id', elm.id); resmark_replDiv(newElm, elm); } } } //- element radio ------------------------------------------------------ function resmark_elmRes_click() { resmark_hideMsg(0); resmark_elem = 'res'; } function resmark_elmCap_click() { resmark_hideMsg(1); resmark_elem = 'cap'; } function resmark_elmInd_click() { resmark_hideMsg(0); resmark_elem = 'ind'; } function resmark_hideMsg(hide) { var e = document.getElementById('resmark_outp_note'); e.innerHTML = (hide) ? '<b>Примечание:</b> Для цветовой кодировки постоянных конденсаторов на практике используется несколько методик. Здесь представлена одна из них.' : ''; } //- other ------------------------------------------------------ function resmark_setResCol(col, color) { elm = document.getElementById('resmark_resistor_' + col); elm.style.background = color; } function resmark_setResCols(colors) { for(i = 0; i < colors.length; i++) { elm = document.getElementById('resmark_resistor_' + (i+1)); elm.style.background = colors[i]; } } function resmark_replDiv(newElm, div) { div.parentNode.replaceChild(newElm, div); } //</source>