Super Sale Limited Time 50% OFF for All-Access Plans
Save 50% Now

[Vue] Fix to prevent hover when clicking on sidebar toggle button


In component demo1/src/layouts/main-layout/sidebar/SidebarLogo.vue.

  1. On sidebar toggle element (element with id kt_app_sidebar_toggle) add attribute ref="toggleRef"
  2. Add a new property for the component, to pass sidebar element.

    props: {
    sidebarRef: {
    type: Object as PropType<HTMLElement | null>,
    required: true,
    },
    },

  3. Inside setup function add a new ref variable and onMouted function as shown below.


    const toggleRef = ref<HTMLFormElement | null>(null);

    onMounted(() => {
    setTimeout(() => {
    const toggleObj = ToggleComponent.getInstance(
    toggleRef.value!
    ) as ToggleComponent | null;

    if (toggleObj === null) {
    return;
    }

    // Add a class to prevent sidebar hover effect after toggle click
    toggleObj.on("kt.toggle.change", function () {
    // Set animation state
    props.sidebarRef?.classList.add("animating");

    // Wait till animation finishes
    setTimeout(function () {
    // Remove animation state
    props.sidebarRef?.classList.remove("animating");
    }, 300);
    });
    }, 1);
    });

    return {
    toggleRef,
    ...
    };




In component demo1/src/layouts/main-layout/sidebar/Sidebar.vue.
  1. Add attribute ref="sidebarRef" on sidebar element (element with id kt_app_sidebar).
  2. Inside setup function add a new ref variable and return this variable.


    const sidebarRef = ref<HTMLFormElement | null>(null);

    return {
    sidebarRef
    ...
    }

  3. Pass sidebar ref to SidebarLogo component.

    <KTSidebarLogo :sidebar-ref="sidebarRef"></KTSidebarLogo>



Text formatting options
Submit
Click any option to insert into your comment. Select text first to wrap it.
  • **text** to make things bold
  • *text* to emphasize
  • ### Heading to make headings
  • [link text](url) for links
  • ![alt text](image-url) to paste in an image
  • - item to make a list
  • 1. item to make an ordered list
  • > quote to quote somebody
  • `code` for single line of code
  • ```js ... ``` for JS code block
  • ```html ... ``` for HTML code block
  • ```scss ... ``` for SCSS code block
  • ```php ... ``` for PHP code block
  • --- for a horizontal rule
  • happy  :)
  • shocked  :|
  • sad  :(

Replies (0)