我正在尝试使用jQuery单击一个链接,然后其中的内容从屏幕右侧进入0px。然后当你再次点击它时,它关闭,一种切换效果。
我目前的jQuery是:
$('.bet-slip-outer').click(function() {
// Responsive Stuff...
var windowwidth = $(window).width();
$('.bet-slip').animate({
'right': '-240px'
});
}, function() {
$('.bet-slip').animate({
'right': '0px'
});
});
但是,当我点击.bet-slip
时,right:-240
似乎优先。
我做错了什么?
干杯
答案 0 :(得分:2)
有条件的:
定义正确的风格。
<div class="bet-slip" style="right:0px;"></div>
jquery的
$('button').click(function() {
if($('.bet-slip').css('right') === '0px' ){
$('.bet-slip').animate({'right':'-240px'});
} else {
$('.bet-slip').animate({'right':'0px'});
}
});
其他强>
只有样式:
$('button').click(function(){
$('div').toggleClass('right');
});
&#13;
div{
position:relative;
width:100px;
height:10px;
background:green;
right:-100px;
transition:1s;
}
.right{
right:0px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
</div>
<button>
f
</button>
&#13;
答案 1 :(得分:1)
使用变量检查元素是否已被点击。
toggle = "on";
$('.bet-slip-outer').click(function() {
// Responsive Stuff...
var windowwidth = $(window).width();
if(toggle == "on"){
$('.bet-slip').animate({
'right': '0px'
});
toggle = "off";
}else{
$('.bet-slip').animate({
'right': '-240px'
});
}
});
答案 2 :(得分:1)
根据官方文档,.click()
method只接受一个处理程序。您不能为此目的声明两个不同的处理程序。有两种解决方案 - 一种是将动画委托给CSS,改为使用.toggleClass()
,或者使用有状态代码:
0
,请执行某些操作(条件1)1
,则执行其他操作(条件2)您当然可以将二进制条件1和2修改为您想要达到的效果。
此外,为了防止由于快速点击/切换而导致的动画不稳定,您应该在向队列添加更多动画之前停止动画。这是通过将.stop(true, true)
链接到对象来完成的。
$(function() {
$('.bet-slip-outer').click(function() {
// Check state
if(!$(this).data('toggle') || $(this).data('toggle') == 0) {
$(this).data('toggle', 1);
$('.bet-slip').stop(true, true).animate({
'right': '-240px'
});
} else {
$(this).data('toggle', 0);
$('.bet-slip').stop(true, true).animate({
'right': '0'
});
}
});
});
&#13;
.bet-slip {
position: relative;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bet-slip-outer">
<div class="bet-slip">bet-slip</div>
</div>
&#13;
答案 3 :(得分:0)
JS中的快速编码风格变量!
您可以执行以下操作:
$( ".bet-slip-outer .bet-slip" ).toggleClass( "animation" );
然后在你的CSS中你会这样做:
.bet-slip-outer .bet-slip { right: 0px;}
.animation { right: -240px;}
为什么要将此选项用于其他选项?