gpt4 book ai didi

jQuery IF 不使用相对位置 + 百分比值

转载 作者:太空宇宙 更新时间:2023-11-04 02:15:59 24 4
gpt4 key购买 nike

我真的很纠结这个问题。

我正在尝试使用 jquery 创建一个左右滑动以隐藏自身的菜单。

我需要将其设置为 left: 100% 并在单击切换按钮时将其设置为 left: 0

为此,我还需要它是相对位置。但是,如果它有 position relative,jquery if 似乎不起作用。

$('.menu-toggle').click(function(){
if ( $('.menu').css('left') == '100%' ) {
alert('left 100%');
$(this).text('keyboard_arrow_right');
$('.menu').stop().animate({
left: 0
}, 500);
}
else {
alert('left not 100%');
$(this).text('menu');
$('.menu').stop().animate({
left: '100%'
}, 500);
}
});

我做了这个 fiddle 是为了更容易测试:https://jsfiddle.net/z2cjLrtq/2/

如果您尝试从 fiddle 中删除 position relative,代码可以工作但是,left: 100% 不会做任何事情,因为它没有没有相对位置

我也尝试过使用 px 而不是 % 并且效果很好!但这对我也没有任何好处,因为它将是一个宽度可变的动态菜单。

我开始认为这是一个 jquery 错误...

有什么解决办法吗?

非常感谢您的帮助。

提前致谢

最佳答案

$('.menu').css('left') 返回以像素为单位的实际(计算)值,例如0px879px,而不是 100%

因此你所要做的就是反转你的逻辑,这样你就可以检查 0px 的情况(当菜单在左边时)而不是试图计算出哪个像素值等于100%。像这样:

$('.menu-toggle').click(function(){

if ( $('.menu').css('left') == '0px' ) {
$(this).text('menu');
$('.menu').stop().animate({
left: '100%'
}, 500);
}
else {
alert($('.menu').css('left'));
$(this).text('keyboard_arrow_right');
$('.menu').stop().animate({
left: 0
}, 500);
}
});

关于jQuery IF 不使用相对位置 + 百分比值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38914685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com