il progetto è ancora in fase di sviluppo, quindi per adesso è ancora piuttosto leggero. Vi posto comunque tutto il codice, anche se per esempio la palette( e altro ) non dovrebbe interessarvi.
html:
javascript:codice:<!DOCTYPE html> <html> <head> <link href="stylesheet.css" rel="stylesheet" type="text/css"> <script src="ExternJava.js" type="text/javascript"></script> <title> PAINT </title> </head> <body style="margin: 0px; padding: 0px; background-color: grey;" onload="setDrawing();"> <div id="IDmain_menu"> <div class="menu_option" id="IDmenu_file" align="center" onmouseover="menu_option_over('IDmenu_file');" onmouseout="menu_option_out('dyn_menu');"> File </div> </div> <div id="IDpalette"> <div class="palette_element" id="pencil" onclick="setTool(0);" onmouseover="change_to_pointer('pencil');"> <img src="images/pencil.jpg" class="imageElPalette"/> </div> <div class="palette_element" id="rubber" onclick="setTool(1);" onmouseover="change_to_pointer('rubber');"> <img src="images/rubber.jpg" class="imageElPalette"/> </div> <div class="palette_element" id="circle" onclick="setTool(2);" onmouseover="change_to_pointer('circle');"> <img src="images/circle.jpg" class="imageElPalette"/> </div> <div class="palette_element" id="square" onclick="setTool(3);" onmouseover="change_to_pointer('square');"> <img src="images/square.jpg" class="imageElPalette"/> </div> <select id="IDcolor" name="Color_pen" style="width: 80%; position: absolute; top: 50%; left: 10%;"> <option value="red"> Rosso </option> <option value="yellow"> Giallo </option> <option value="red"> Verde </option> <option value="red"> Nero </option> <option value="red"> Blu </option> <option value="custom"> Personalizzato </option> </select> <input type="text" id="IDwidth" style="position: absolute; width: 80%; left: 10%; top: 55%; "/> </div> <div id="expandButton" onclick="click_expand_button();" onmouseover="expand_button_hover();" onmouseout="window.document.getElementById('expandButton').style.opacity= 1;"> < </div> <div id="sheet"> <canvas id="IDcanvas"> </canvas> </div> </body> </html>
css:codice:const MAX_OPTION= 2; var btnExpand= 1; var menu_exist= 0; var penStyle= { Color: "black", Width: 1 } var Tools= { Pencil: 0, Rubber: 0, Circle: 0, Square: 0 } function setDrawing() { var elPalette= window.document.getElementsByClassName("palette_element"); var IDpalette= window.document.getElementById("IDpalette"); var Ecanvas= window.document.getElementById("IDcanvas"); var index= 0; for( var r= 0; r < (elPalette.length/2 + elPalette.length%2); ++r ) { for( var c= 0; c < 2; ++c ) { index= r*2 + c; elPalette[index].style.height= Math.floor(elPalette[index].offsetWidth) + "px"; elPalette[index].style.top= Math.floor(0.05*IDpalette.offsetHeight*(r+1) + elPalette[index].offsetHeight*r) + "px"; elPalette[index].style.left= Math.floor(0.12*IDpalette.offsetWidth*(c+1) + elPalette[index].offsetWidth*c) + "px"; } } var canvHeight= window.innerHeight - 60; var canvWidth= window.innerWidth - 60; Ecanvas.setAttribute("width", canvWidth ); Ecanvas.setAttribute("height", canvHeight ); var new_sheet= Ecanvas.getContext("2d"); new_sheet.fillStyle= "#FF0000"; new_sheet.fillRect( 20, 30, 400, 500 ); //Ecanvas.onclick= draw_Down(); } function menu_option_over( elementID ) { var option_menu= window.document.getElementById( elementID ); var submenu= window.document.createElement("div"); window.document.body.appendChild(submenu); submenu.setAttribute("id", "dyn_menu"); submenu.setAttribute("onmouseover", "setMenu_exist(1);"); submenu.setAttribute("onmouseout", "setMenu_exist(0);"); //submenu.addEventListener("mouseover", setMenu_exist(1), false); //submenu.addEventListener("mouseout", setMenu_exist(0), false); submenu.style.position= "absolute"; submenu.style.width= option_menu.clientWidth * MAX_OPTION + "px"; submenu.style.height= option_menu.clientHeight * MAX_OPTION + "px"; submenu.style.top= option_menu.clientHeight + "px"; submenu.style.left= window.document.getElementById("IDpalette").offsetWidth + window.document.getElementById("IDpalette").offsetLeft + "px"; submenu.style.border= "2px solid white"; submenu.style.background= "black"; create_menu_items("dyn_menu", "Nuovo", "salva"); } function setMenu_exist( setter ) { menu_exist= setter; } function create_menu_items() { const SIZE_ARG= arguments.length-1; var current_menu= window.document.getElementById( arguments[0] ); var items= new Array(SIZE_ARG); for( var i= 0; i < SIZE_ARG; ++i ) { items[i]= window.document.createElement("div"); current_menu.appendChild(items[i]); items[i].setAttribute("id", "option" + i ); items[i].setAttribute("align", "center"); items[i].setAttribute("onmouseover", "setMenu_exist(1);"); items[i].setAttribute("onmouseout", "setMenu_exist(0);"); //items[i].addEventListener("mouseover", setMenu_exist(1), false); //items[i].addEventListener("mouseout", setMenu_exist(0), false); items[i].style.position= "absolute"; items[i].style.width= "100%"; items[i].style.height= "30px"; items[i].style.top= i*30 + "px"; items[i].style.fontSize= "20px"; items[i].style.color= "white"; window.document.getElementById("option" + i).innerHTML= arguments[i+1]; } } /*function option_hover( elementID ) { var cur_opt= window.document.getElementById(elementID); cur_opt.style.background= "rgba(255, 255, 255, 0.4)"; }*/ /*function check_dyn_menu_hover( elementID ) { window.alert(event.offsetX); var checking= true; var cur_menu= window.document.getElementById( elementID ); if (event.offsetX < 0 || event.offsetX > cur_menu.offsetWidth) checking= false; if (event.offsetY < 30 || event.offsetY > (30 + MAX_OPTION*30)) checking= false; return checking; }*/ function menu_option_out( elementID ) { var del_menu= window.document.getElementById( elementID ); if( /*del_menu!= null ||*/ menu_exist== 0 ) window.document.body.removeChild(del_menu); } var IDinterval= 0; function click_expand_button() { IDinterval= window.setInterval(palette_expand, 1 ); } function expand_button_hover() { var btn= window.document.getElementById("expandButton"); btn.style.cursor= 'pointer'; btn.style.opacity= 0.8; } function change_to_pointer( elementID ) { window.document.getElementById(elementID).style.cursor= "pointer"; } function palette_expand() { var palette= window.document.getElementById("IDpalette"); var button_expand= window.document.getElementById("expandButton"); var first_menu= window.document.getElementById("IDmain_menu"); if( btnExpand== 1) { palette.style.left= (palette.offsetLeft - 1) + "px"; button_expand.style.left= (button_expand.offsetLeft - 1) + "px"; first_menu.style.left= (first_menu.offsetLeft - 1) + "px"; } if( btnExpand== -1) { palette.style.left= ( palette.offsetLeft + 1 ) + "px"; button_expand.style.left= ( button_expand.offsetLeft + 1 ) + "px"; first_menu.style.left= (first_menu.offsetLeft + 1) + "px"; } if( palette.offsetLeft== -(palette.clientWidth) ) { window.clearInterval(IDinterval); button_expand.innerText= ">"; btnExpand= -1; } if ( palette.offsetLeft== 0 ) { window.clearInterval(IDinterval); button_expand.innerText= "<"; btnExpand= 1; } } function setTool( mod ) { Tools.Pencil= 0; Tools.Rubber= 0; Tools.Circle= 0; Tools.Square= 0; switch( mod ) { case 0: Tools.Pencil= 1; break; case 1: Tools.Rubber= 1; break; case 2: Tools.Circle= 1; break; case 3: Tools.Square= 1; break; } } function draw_Down() { //penStyle.Color= window.getElementById("IDcolor").value; window.alert("ciao"); //penStyle.Width= }
ringrazio chiunque abbia voglia di darci un occhiatacodice:html, body{ width: 100%; height: 100%; margin: 0px; overflow: hidden; } #IDpalette{ position: absolute; background-color: red; width: 10%; top: 0px; height: 100%; z-index: 0; } #expandButton{ position: absolute; width: 30px; height: 60px; bottom: 0px; left: 10%; background-color: red; text-align: center; line-height: 65px; font-size: 40px; font-weight: bold; } #sheet{ width: 100%; height: 100%; position: absolute; background-color: grey; z-index: -1; } #IDmain_menu{ position: absolute; background-color: black; height: 30px; width: 100%; left: 10%; } #IDcanvas{ position: absolute; top: 40px; left: 40px; background-color: white; } .menu_option{ position: relative; height: 100%; width: 5%; border: 2px solid white; border-bottom-width: 0px; border-top-width: 0px; color: white; font-size: 20px; } .palette_element{ position: absolute; width: 32%; border: 1px solid black; margin: 0px; } .imageElPalette{ position: absolute; width: 100%; height: 100%; }![]()



Rispondi quotando