下拉剧集菜单性能问题

时间:2019-07-10 12:26:35

标签: javascript html css

我正在学习和使用js已有3周了。 我做了我想要的,这是我得到的:jsfiddle

正如预期的那样,此代码的问题是代码的性能和共谋性。

主要问题:

  • season_name.nextElementSibling.firstElementChild;-在forEach中时,如何更容易地访问兄弟姐妹的子元素?也许与节点有关?

  • 是否有比ul更好的方法来计算ul的高度:

  var numberOfEpisodes = episodes.childElementCount;
  var a = numberOfEpisodes / 6
  var b = Math.round(a)
  if (b < a) { //it gives out exact number of rows
    var numberOfRows = Math.round(a + 1)
  } else {
    var numberOfRows = Math.round(a)
  }
  var height = numberOfRows * 105 //105px is height of one row
  • 如何保存计算出的ul的高度值供以后使用? 我现在的代码:
episodes.style.height = height + 'px'; //as ul height change nothing, i'm saving here height value for later
  • 我该如何更好地进行开关:
 var hidden = 0;
 function hide(){
  if (hidden == 0) {
    hidefunction();
    hidden = 1;
  } else {
    showfunction();
    hidden = 0;
 }}
  • 这是我最大的问题:隐藏情节后,是否有更好的方法来转换空白空间?从我学到的知识转换高度会使性能降低(在我的测试页上,在开发人员工具中打开“ Paint flashing”后,在切换“第1季”后,所有网站均呈绿色闪烁)。另外,我想保持剧集的过渡隐藏,然后隐藏空白。

1 个答案:

答案 0 :(得分:0)

由于某种原因,直到现在我还没有听说过data attributes。 得益于此:

  

如何保存计算的ul高度值供以后使用?

element.dataset.height = calculated_height;
  

我如何更好地进行开关:

  if(element.dataset.clicked == 0){
    element.dataset.clicked = 1;
   } else {
    element.dataset.clicked = 0;
   }