我需要能夠將我的菜單中相對定位的元素附加到絕對定位的下拉菜單。這對於jQuery來說很好 - 但是,在下拉菜單中存在一個CSS轉換延遲,而且我很難找出一個乾淨的方式來處理附加操作,以便它與下拉菜單變爲活動狀態同步。追加元素與jQuery同步CSS過渡延遲
在下拉菜單變爲活動狀態之前,頂層菜單有500ms的轉換延遲。我需要確保「block」元素的jQuery append與此同步。有沒有人有任何指導方法來處理這個問題?我沒有靈活性來修改標記。
jQuery(document).ready(function($) {
$('.main-menu > li').on({
mouseenter: function() {
$(this).addClass('active');
$('.block').appendTo($(this).find('.dropdown'));
},
mouseleave: function() {
$(this).removeClass('active');
$('.block').appendTo('.header');
}
})
});
*,
*:before,
*:after {
box-sizing: border-box;
}
html {
overflow-y: scroll;
min-height: 100%;
}
body {
position: relative;
overflow: hidden;
margin: 0;
}
.main-menu {
display: flex;
justify-content: space-around;
background: yellow;
}
.dropdown {
opacity: 0;
transition: all 200ms ease-in-out 200ms;
visibility: hidden;
position: absolute;
width: 100vw;
left: 50%;
transform: translateX(-50%);
z-index: 20;
overflow: hidden;
background: red;
}
li.active .dropdown {
transition: all 0s linear 500ms;
opacity: 1;
visibility: visible;
}
.block {
background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<body>
<header class="header">
<ul class="main-menu">
<li>
<a href="/test">Test</a>
<div class="dropdown">
<div class="wrapper">
<div class="menu-subcategory">
<h4><a href="/sub">Sub Cat</a></h4>
<ul>
<li>
<a href="/test">Test</a>
</li>
<li>
<a href="/test">Test 2</a>
</li>
<li>
<a href="/test">Test 3</a>
</li>
<li>
<a href="/test">Test 4</a>
</li>
<li>
<a href="/test">Test 5</a>
</li>
<li>
<a href="/test">Test 6</a>
</li>
<li>
<a href="/test">Test 7</a>
</li>
<li>
<a href="/test">Test 8</a>
</li>
</ul>
</div>
</div>
</div>
</li>
<li>
<a href="/test">Test 2</a>
<div class="dropdown">
<div class="wrapper">
<div class="menu-subcategory">
<h4><a href="/sub">Sub Cat</a></h4>
<ul>
<li>
<a href="/test">Test</a>
</li>
<li>
<a href="/test">Test 2</a>
</li>
<li>
<a href="/test">Test 3</a>
</li>
<li>
<a href="/test">Test 4</a>
</li>
<li>
<a href="/test">Test 5</a>
</li>
<li>
<a href="/test">Test 6</a>
</li>
<li>
<a href="/test">Test 7</a>
</li>
<li>
<a href="/test">Test 8</a>
</li>
</ul>
</div>
</div>
</div>
</li>
<li>
<a href="/test">Test 3</a>
<div class="dropdown">
<div class="wrapper">
<div class="menu-subcategory">
<h4><a href="/sub">Sub Cat</a></h4>
<ul>
<li>
<a href="/test">Test</a>
</li>
<li>
<a href="/test">Test 2</a>
</li>
<li>
<a href="/test">Test 3</a>
</li>
<li>
<a href="/test">Test 4</a>
</li>
<li>
<a href="/test">Test 5</a>
</li>
<li>
<a href="/test">Test 6</a>
</li>
<li>
<a href="/test">Test 7</a>
</li>
<li>
<a href="/test">Test 8</a>
</li>
</ul>
</div>
</div>
</div>
</li>
<li>
<a href="/test">Test 4</a>
</li>
<li>
<a href="/test">Test 5</a>
</li>
<li>
<a href="/test">Test 6</a>
</li>
<li>
<a href="/test">Test 7</a>
</li>
<li>
<a href="/test">Test 8</a>
</li>
</ul>
<div class="block">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas
at lorem non hendrerit.</p>
</div>
</header>
<div class="container">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec gravida est mauris, nec blandit dui elementum vitae. Pellentesque aliquet magna vel lorem porta, nec scelerisque augue volutpat. Mauris sed eros a erat bibendum venenatis vulputate nec
dui. Maecenas tristique at leo et finibus. Maecenas euismod volutpat tortor, non aliquet arcu commodo quis. Aliquam mollis condimentum orci at efficitur. Fusce turpis sapien, ornare ac tincidunt sed, consectetur sit amet purus. Vivamus egestas at
lorem non hendrerit.</p>
</div>
</body>
如果它是相同的塊爲什麼你從標題中刪除它並將其附加到李?它不能在'header'和'li'中出現 – karthick