首先点击链接 1,它向右移动 100px 并显示箭头。
第二次点击链接 2,它向右移动 100px,链接 1 向后移动直到箭头可见。
第三次点击链接 3,它向右移动 100px,链接 2 向后移动直到箭头可见。
第四次点击链接 4,它向右移动 100px,链接 3 向后移动直到箭头可见。
然后第五次点击链接4,它向后移动,箭头消失。
很好,但是当我下次单击时,它不起作用,并且当再次单击第 7 次时,它起作用,下次不起作用,依此类推。
我希望当链接移向右箭头显示和链接移回箭头隐藏时。
$('.nav ul li').click(function() {
var clicks = $(this).data('clicks');
if (clicks) {
$(this).animate({right:0});
$('.arrow').css({'opacity':'0'});
} else {
$(this).css({'position':'relative'}).animate({right:100},function(){
$('.nav ul li').not(this).animate({right:0});
});
$('.arrow').css({'opacity':'1'});
}
$(this).data("clicks", !clicks);
});
.nav {width: 100px; position: absolute; right: 40px; }
.nav ul li:hover {color: #fff;}
.arrow {
position: absolute;
right: 150px;
opacity: 0;
transition: 1s;
-webkit-animation-name: arrowAnimation;
-webkit-animation-duration: 1s;
animation-name: arrow-animation;
animation-duration: 1s
}
@-webkit-keyframes arrowAnimation {
from { top:10%; opacity:0 }
to { top:18%; opacity:1 }
}
@keyframes arrowAnimation {
from { top:10%; opacity:0 }
to { top:18%; opacity:1 }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="nav">
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
</ul>
<span class="arrow"><img src="images/arrow.png" alt="arrow" /></span>
</div>