var State = { menu: {//     html - data-menu="array" container: "item_level_1", //      html - data-item_level_1="container" props: [ /*    */], methods:{ /*      */ } }, virtualArrayComponents: {//     (    DOM) menu_level_2:{//  ,  html    container: "item_level_2",//    html - data-item_level_2="container" props: [/*    */], methods: { } }, menu_level_3:{//  container: "item_level_3", //    html - data-item_level_3="container" props: [ ], methods: { } }, }}   <ul data-menu="array" class="nav-menu-3 pc-width"> <li data-item_level_1="container" data-item_level_1-over='mouseover' data-item_level_1-out='mouseout' > <a href="#" > </a> <ul class="hover-non" data-item_level_1-submenuclass="class" data-item_level_1-group="group" > <!--     data-item_level_2="container"    menu_level_2 - ---> </u> </li> </ul>  <!--    --> <li data-item_level_2="container" data-item_level_2-over='mouseover' data-item_level_2-out='mouseout'> <a href="#"> </a> <ul class="hover-non" data-item_level_2-submenuclass="class" data-item_level_2-group_2="group"> <!--     data-item_level_3="container"    menu_level_3 - ---> </ul> </li>  <li data-item_level_3="container"> <a href="#">item-level-3</a> </li> <li data-item_level_3_img="container"> <a href="#"><img src="/img/Thumbnail_300x300.png">item-level-3</img></a> </li>  var State = { menu: { container: "item_level_1", props: [ "submenuclass", "group", "over", "out"],//   methods:{ //     "over", "out" over: function(){ //this -      dom  (this.htmlLink)    //        submenuclass    (   ),     "hover-non"    . this.parentContainer.props.submenuclass.removeProp("hover-non"); }, out: function(){ this.parentContainer.props.submenuclass.setProp("hover-non"); }, } }, virtualArrayComponents: {//  menu_level_2:{ container: "item_level_2", props: [ "group_2", "submenuclass", "over", "out"], methods: { over: function(){ // . this.parentContainer.props.submenuclass.removeProp("hover-non"); }, out: function(){ this.parentContainer.props.submenuclass.setProp("hover-non"); }, } }, menu_level_3:{ container: "item_level_3", props: [ ], methods: { } }, menu_level_3_img:{ container: "item_level_3_img", props: [ ], methods: { } }, }, eventEmiters: { } } window.onload = function(){ ///  HTMLix var HM = new HTMLixState(State); console.log(HM); }  <nav > <ul data-menu="array" class="nav-menu-3 pc-width"> <!--   menu --> <li data-item_level_1="container" data-item_level_1-over='mouseover' data-item_level_1-out='mouseout' > <a href="#" > </a> <ul class="hover-non" data-item_level_1-submenuclass="class" data-item_level_1-group="group" ><!--class="sub-nav-menu"--> <!--    menu_level_2 --> <li data-item_level_2="container" data-item_level_2-over='mouseover' data-item_level_2-out='mouseout'> <a href="#"> </a> <ul class="hover-non" data-item_level_2-submenuclass="class" data-item_level_2-group_2="group"> <!--    menu_level_3_img --> <li data-item_level_3_img="container"> <a href="#"><img src="/img/Thumbnail_300x300.png">item-level-3</img></a> </li> <li data-item_level_3_img="container"> <a href="#"><img src="/img/Thumbnail_300x300.png">item-level-3</img></a> </li> <li data-item_level_3_img="container"> <a href="#"><img src="/img/Thumbnail_300x300.png">item-level-3</img></a> </li> </ul> </li> <li data-item_level_2="container" data-item_level_2-over='mouseover' data-item_level_2-out='mouseout'> <a href="#"> </a> <ul class="hover-non" data-item_level_2-submenuclass="class" data-item_level_2-group_2="group"> <li data-item_level_3_img="container"> <a href="#"><img src="/img/Thumbnail_300x300.png">item-level-3</img></a> </li> <li data-item_level_3_img="container"> <a href="#"><img src="/img/Thumbnail_300x300.png">item-level-3</img></a> </li> </ul> </li> <!--                --> Source: https://habr.com/ru/post/457370/
All Articles