• 締切済み

ソースファイルの処理ロジックについて(文字上の関係で不明点抜粋のみですが)

この部分では何の処理をしているか、教えていただきたいのです function graphArea(start, end){ var size = (end - start) / DAY_LENGTH; var base = document.getElementById("base"); var area = document.createElement("div"); var pointsX = [ START_POINT.LEFT, START_POINT.TOP, (START_POINT.LEFT + size * DATE_SCALE + MARGIN.X / 2), START_POINT.TOP ] var pointsY = [ START_POINT.LEFT, (MARGIN.Y * 3 / 2 + AMPLITUDE * 2), START_POINT.LEFT, (MARGIN.Y / 2) ] area.className = "graphArea"; base.style.width = area.style.width = size * DATE_SCALE + MARGIN.X * 2; base.style.height = area.style.height = (AMPLITUDE + MARGIN.Y) * 2; area.appendChild(polyline(pointsX, LINE_COLOR.AXIS, "classic")); area.appendChild(polyline(pointsY, LINE_COLOR.AXIS, "classic")); base.removeChild(base.firstChild); base.appendChild(area); var basePosition = getAbsolutePosition(base); for(var i=1; i<=size; i++){ var isDelegDay = i % 5 == 0; var sublinePoints = [ (START_POINT.LEFT + DATE_SCALE * i), START_POINT.TOP, (START_POINT.LEFT + DATE_SCALE * i), (START_POINT.TOP - SUBLINE_LENGTH * (isDelegDay ? 2 : 1)) ] area.appendChild(polyline(sublinePoints, LINE_COLOR.AXIS)); if(isDelegDay){ var label = document.createElement("span"); label.className = "pointLabel"; label.style.top = (basePosition.top + START_POINT.TOP - SUBLINE_LENGTH * 2 + LABEL_OFFSET.Y) + "px"; label.style.left = (basePosition.left + (START_POINT.LEFT + DATE_SCALE * i) + LABEL_OFFSET.X) + "px"; label.appendChild(document.createTextNode(i)) area.appendChild(label); } } return area; }

みんなの回答

  • NTJ
  • ベストアンサー率44% (46/103)
回答No.1

何処から引っ張って着たのかは存じませんが、大文字で書かれた定数らしきものの定義が不明なので、回答は難しいです。 ただ・・・ var label = document.createElement("span"); label.className = "pointLabel"; label.style.top = (略) + "px"; label.style.left = (略) + "px"; label.appendChild(document.createTextNode(i)) area.appendChild(label); という記述があるので、 「何かの計算」の結果、表示幅に合わせた、SPANエレメントで作った棒グラフを表示してるのではないかと思われます。 ソース全体を見て、大文字で書かれた定数らしきものを実数へ置き換えて行けば、処理内容が見えるのではないかと思います。 ・・・しかし・・・ createElement 使いまくりで美しくない処理ですねぇ・・・ もーちょっと美麗な手法が有りそうに思いますので、破棄して作り直した方が宜しいのではなかと思われます。

関連するQ&A