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