large reformatting of files

This commit is contained in:
ksjdragon 2016-04-15 21:42:45 -04:00
parent 4f3095bfaf
commit e0e8954fa0
4 changed files with 190 additions and 3 deletions

View File

@ -183,7 +183,7 @@ img {
color: #FF746B; color: #FF746B;
} }
.keyholder { .legendholder {
margin-bottom: -17%; margin-bottom: -17%;
margin-top: 17%; margin-top: 17%;
margin-left: 31%; margin-left: 31%;

View File

@ -12,7 +12,7 @@
<div class="pulltab first"><p class="tDesc">Elements</p></div> <div class="pulltab first"><p class="tDesc">Elements</p></div>
<div class="sidebar elements"> <div class="sidebar elements">
<i class="fa fa-close"></i> <i class="fa fa-close"></i>
<div class="keyholder"></div> <div class="legendholder"></div>
</div> </div>
<div class="pulltab second"><p class="tDesc">Settings</p></div> <div class="pulltab second"><p class="tDesc">Settings</p></div>
@ -30,7 +30,42 @@
<div class="workspace"></div> <div class="workspace"></div>
</body> </body>
<script src="./index.js"></script> <script type='text/javascript' >
var settings = {};
var info;
var options = ["theme","displayTheme","elecConf","unit"];
var choices = [
["light","dark"],
["category", "atomRadi", "moleWeig", "ioniEner", "elecAffi", "elecNega", "density", "melting","boiling"],
["abr","norm"],
["K","C","F"]
];
var choicesDisplay = [
["Light","Dark"],
["Region", "Atomic Radius", "Molecular Mass", "Ionization Energy", "Electron Affinity", "Electronegativity", "Density", "Melting Point", "Boiling Point"],
["Abbreviated","Full"],
["Kelvin","Celsius","Fahrenheit"]
];
var colorChart = {
"category": {"al":'#8EF02B',"ae":"#D77A1D","md":"#387290","nm":"#52BFF6","ha":"#4842E9","ng":"#7B1AE9","tm":"#E5D439",
"bm":"#2ADEA8","lh":"#F02BBC","ac":"#D78A8A"},
"atomRadi": ["#151618", "#2C7BF2"],
"moleWeig": ["#151618", "#2C7BF2"],
"ioniEner":["#E2DC27", "#5535D4"],
"elecAffi": ["#E2DC27", "#5535D4"],
"elecNega": ["#E2DC27","#5535D4"],
"density": ["#151618", "#2C7BF2"],
"melting": ["#D7301E", "#69F2F2"],
"boiling": ["#D7301E", "#69F2F2"]
};
</script>
<script src="./js/main.js"></script>
<script src="./js/backend.js"></script>
<script src="./js/buttons.js"></script>
<script src="./js/reactive.js"></script>
<script src="./js/settings.js"></script>
<!--<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> <!--<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/2.1.1/jquery.scrollTo.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/2.1.1/jquery.scrollTo.js"></script>
--> -->

12
atoms/js/buttons.js Normal file
View File

@ -0,0 +1,12 @@
get("pulltab")[0].onclick = function(){open(get("elements"));}
get("pulltab")[1].onclick = function(){open(get("settings"));}
get("fa")[0].onclick = function(){
get("elements").style.marginLeft = "-150%";
}
get("fa")[1].onclick = function(){
get("settings").style.marginLeft = "-40%";
}
function open(dom) {
dom.style.marginLeft = "0%";
}

140
atoms/js/main.js Normal file
View File

@ -0,0 +1,140 @@
function getJSON() {
xhr.open("GET","./resources/static/info.json", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
info = JSON.parse(xhr.responseText);
}
}
xhr.send(null);
}
function update() {
var cookie = document.cookie;
var cookieArray = cookie.split(";");
// For all settings, append into object format
for(var i = 0; i < cookieArray.length; i++) {
var set = cookieArray[i].split("=");
settings[set[0].replace(" ","")] = set[1];
}
// Below are settings applied based
var dispTheme = settings["displayTheme"];
changeTheme(settings["theme"]);
tableTheme(dispTheme);
legendChange(dispTheme);
}
function createTable() {
var tbl = document.createElement('table');
tbl.style.border = "1px hidden";
tbl.className = "normal";
// Creates table width j, height i
for(var i = 0; i < 7; i++) {
var tr = tbl.insertRow();
for(var j = 0; j < 18; j++) {
td = tr.insertCell();
td.className = "periodictable";
}
}
get("sidebar")[0].appendChild(tbl);
// Repeat of process above for Lanthanides and Actinides
tbl = document.createElement('table');
tbl.className = "extension";
for(var i = 0; i < 2; i++) {
var tr = tbl.insertRow();
for(var j = 0; j < 15; j++) {
var td = tr.insertCell();
td.className = "periodictable";
}
}
get("sidebar")[0].appendChild(tbl);
// Creates text for the periodic table
cells = get("td");
for(var i = 0;i < 118;i++) {
ele = document.createElement("p");
text = document.createTextNode(i+1); // i+1 to offset 0
ele.appendChild(text);
cells[info["location"][i]].appendChild(ele);
text = document.createTextNode(info["shorthand"][i]);
cells[info["location"][i]].appendChild(text);
cells[info["location"][i]].className = cells[info["location"][i]].className +" atom"; // Adds class to prevent hover animation on blank cells
}
}
function createGradientLegend() {
// Create Table element
var tbl = document.createElement('table');
// Adds Class for styling
tbl.className = "legend";
// Gets theme then makes vars for hexes so that repeated table access not necessary
var theme = settings["displayTheme"];
// Filter out non-gradient layouts
if (colorChart[theme].length > 2) {
//keyLegend();
return;
}
var color1 = colorChart[theme][0];
var color2 = colorChart[theme][1];
// Creates a gradient of 101 values wide (j) for good transition
var tr = tbl.insertRow();
for(var j = 0; j <= 1; j += 0.01) {
var td = tr.insertCell();
td.className = "legendcell";
td.id
td.style.backgroundColor = gradientColor(color1, color2 , j);
}
// Adds table to key area
get("legendholder").appendChild(tbl);
}
function get(name) {
// Condensed format for document.getX
var elements = [];
if(document.getElementsByClassName(name).length > 0) {
elements = document.getElementsByClassName(name);
}
else if(document.getElementsByTagName(name).length > 0) {
for(var a = 0; a < document.getElementsByTagName(name).length; a++) {
elements.push(document.getElementsByTagName(name)[a]);
}
}
else if(document.getElementById(name) != null) {
elements.push(document.getElementById(name));
}
if(elements.length == 1) {
return elements[0];
} else { return elements; }
}
var reader = new FileReader();
var xhr = new XMLHttpRequest();
if(document.cookie == "") { // Set defaults if no cookie
document.cookie = "theme=light";
document.cookie = "displayTheme=category;";
document.cookie = "elecConf=abr;";
document.cookie = "unit=K;"
}
getJSON();
setTimeout(function mainFunc() {
createTable();
update();
makeSettings();
tableDesc();
createGradientLegend();
}, 600);