Guest User

Untitled

a guest
May 20th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. var jsonData;
  2. var data = [];
  3. var returnData;
  4.  
  5.  
  6. $("#arrow-left").on("click", function() {
  7.  
  8. $("#panel-1").toggleClass('side-panel__hidden');
  9. $("#arrow-left").toggleClass('arrow-left__hidden');
  10. $("#panel-2").toggleClass("main-pannel__to-side");
  11. $('#field-main').toggleClass("field-main__to-side");
  12. $("path").toggleClass("graph-wide");
  13.  
  14. if ($('#panel-2').hasClass("main-pannel__to-side")) {
  15.  
  16. $('#panel-2').toggleClass("main-pannel__wide");
  17. $('#panel-2').removeClass("main-pannel__to-side");
  18. $("#field-main").toggleClass("field-main__wide");
  19. $("#field-main").removeClass("field-main__to-side");
  20.  
  21. }
  22. })
  23.  
  24. $("#arrow-right").on("click", function() {
  25.  
  26. $("#panel-3").toggleClass('side-panel__hidden');
  27. $("#arrow-right").toggleClass('arrow-right__hidden');
  28. $("#panel-2").toggleClass("main-pannel__to-side");
  29. $('#field-main').toggleClass("field-main__to-side");
  30. $("path").toggleClass("graph-wide");
  31.  
  32. })
  33.  
  34.  
  35. var input = document.getElementById('input');
  36. var values = document.querySelector('.values-field');
  37.  
  38. $('input').keyup(function(e){
  39. if (e.keyCode === 13) {
  40.  
  41. var newValue = document.createElement("div"),
  42. removeButton = document.createElement("div"),
  43. time = new Date(),
  44. dateString = ' ',
  45. valueNumber = Number(input.value);
  46.  
  47. dateString += time.getMinutes() +':';
  48. dateString += time.getSeconds() +':';
  49. dateString += time.getMilliseconds();
  50.  
  51. data.push({"date": dateString, "value" : valueNumber });
  52.  
  53. removeButton.className = "remove-button";
  54. removeButton.setAttribute("data-index",data.length - 1);
  55. removeButton.innerHTML = "Remove";
  56.  
  57. newValue.className = "new-value";
  58. newValue.innerHTML = dateString + "<b>" + input.value + "</b>";
  59. newValue.appendChild(removeButton);
  60. values.appendChild(newValue);
  61.  
  62. getData();
  63.  
  64. }
  65. })
  66.  
  67. $('.values-field').on('click',".remove-button", function(){
  68. var arrIndex = $(this).attr("data-index");
  69. data.splice(arrIndex,1);
  70. newData.splice(arrIndex,1);
  71. length--;
  72. $(this).parent().remove();
  73. $(".dots:eq(arrIndex)").remove();
  74. $(".dots-value:eq(arrIndex)").remove();
  75. Clear();
  76. Draw();
  77. });
  78.  
  79. $("#input").on('focus', function() {
  80. $(".change-input").addClass("change-input--visible");
  81. })
  82.  
  83. $(".inc").on('click', function() {
  84. input.value++;
  85. })
  86.  
  87. $(".dec").on('click', function() {
  88. input.value--;
  89. })
  90.  
  91. var margin = {top: 30, right: 20, bottom: 30, left: 50},
  92. width = 600 - margin.left - margin.right,
  93. height = 600 - margin.top - margin.bottom;
  94.  
  95. var parseDate = d3.time.format(" %M:%S:%L").parse,
  96. x = d3.time.scale().range([0, width]),
  97. y = d3.scale.linear().range([height, 0]);
  98.  
  99. x.range([0, 500]);
  100.  
  101. var newData = [];
  102.  
  103. formatDate = d3.time.format("%M:%S:%L")
  104.  
  105. function getData() {
  106.  
  107. Clear();
  108.  
  109. data[length].date = parseDate(data[length].date);
  110. data[length].value = +data[length].value;
  111. length++;
  112.  
  113. x.domain(d3.extent(data, function(data) { return data.date; }));
  114. y.domain([0, d3.max(data, function(data) { return data.value; })]);
  115.  
  116. for (var i=0;i<data.length;i++)
  117. {
  118. newData[i] = {};
  119. newData[i]['value'] = data[i]['value'];
  120. newData[i]['date'] = data[i]['date'];
  121. }
  122. //положим элементы массива в localStorage
  123. jsonData = JSON.stringify(data);
  124. localStorage.setItem("jsonData",jsonData);
  125. returnData = JSON.parse(localStorage.getItem("jsonData"));
  126.  
  127. Draw();
  128.  
  129. }
  130.  
  131. var field = document.getElementById("field-main");
  132.  
  133. var svg = d3.select(field)
  134. .append("svg")
  135. .attr("width", width + margin.left + margin.right)
  136. .attr("height", height + margin.top + margin.bottom)
  137. .append("g")
  138. .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
  139.  
  140. function Draw() {
  141.  
  142. var valueline = d3.svg.line()
  143.  
  144. .x(function(data) { return x(data.date); })
  145. .y(function(data) { return y(data.value); });
  146.  
  147. svg.append("path")
  148. .attr("class", "line")
  149. .attr("d", valueline(newData));
  150.  
  151. svg.selectAll("dot")
  152. .data(data)
  153. .enter()
  154. .append("circle")
  155. .attr("class","dots")
  156. .attr("r", 0)
  157. .attr("cx", function(data) { return x(data.date); })
  158. .attr("cy", function(data) { return y(data.value); });
  159.  
  160. svg.selectAll("dot")
  161. .data(data)
  162. .enter()
  163. .append("text")
  164. .attr("font-size","15px")
  165. .attr("class","dots-value")
  166. .attr("dx", function(data) { return x(data.date); })
  167. .attr("dy", function(data) { return y(data.value); })
  168. .text(function(data) { return data.value });
  169. // localStorage.setItem("svg", JSON.stringify(svg));
  170. }
  171.  
  172. function Clear() {
  173. d3.selectAll("g > *").remove();
  174. }
  175.  
  176. //localStorage.setItem("data", JSON.stringify(data));
  177. // localStorage.newData = JSON.stringify(newData);
Add Comment
Please, Sign In to add comment