Что вы можете сделать, это заменить события :
Вместо mouseover использовать mouseenter и вместо mouseout use mouseleave
Проверьте тест, который я сделал ниже: когда вы используете mouseover и mouseout, это вызовет упомянутую вами проблему, но при изменении событий для mouseenter и mouseleave, работает нормально:
$(".sidebar").on("mouseenter", function() {
$(".toggle-animation").css({
"width": "360px",
"padding": "20px"
});
$(".filter-icon").css("opacity", "0");
//insert dynamically some elements to simulate your situation
$(".sidebar").append("<div id='dynamicElements'><input placeholder='Input Field' '><br><select id='selectField'><option>1</option><option>2</option><option>3</option><option>4</option></div>");
});
$(".sidebar").on("mouseleave", function() {
$(".toggle-animation").css({
"width": "60px",
"padding": "0"
});
$(".filter-icon").css("opacity", "1");
//remove the dynamically generated elements
$("#dynamicElements").remove();
});
.sidebar {
height: 100%;
width: 60px;
position: fixed;
z-index: 1;
top: 45;
left: 0;
overflow-x: hidden;
background-color: red;
}
.sidebar form {
opacity: 0;
}
.sidebar:hover form {
opacity: 1;
transition: all .1s;
transition-delay: .1s;
}
.toggle-animation {
width: 60px;
transition: all .2s;
}
.filter-icon {
width: 20px;
position: absolute;
top: 50%;
left: 20px;
opacity: 1;
transition: all .2s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<aside class="sidebar toggle-animation">
<th:block id="filter"></th:block>
<img class="filter-icon" src="/static/images/filter.svg" /><br>
</aside>