javascript - 脚本只工作一次

标签 javascript jquery html css

这让我发疯......

我希望我的注册表单在我单击一个按钮时从页面右侧滑出,然后在我再次单击同一个按钮时滑出(类似于切换)。

第一次效果很好,但是当我第三次点击按钮再次显示表单时,没有任何反应...为什么?

这是我的头脚本:

function moveme() 
{
    var form_pos = document.getElementById('signup');
    if(form_pos.style.right <= 0)
    {
        $('#signup').animate({right:'100px', opacity:1},700);
    }
    else
    {  
        $('#signup').animate({right:'0px', opacity: 0},700);
    }
}

我身上有这个:

<a id="action-top" onclick="moveme();" href="#" class="button yellow">GAME ON!</a>
<div id="signup">MY FORM </div>

和 CSS:

#signup
{
    display:block;
    width:300px;
    height:100%;
    position:absolute;
    top:0;
    right:-300px;
    padding:30px;
    background:#eee;
    z-index:999;
    opacity:0;
}

最佳答案

.style.* 属性的默认值取自样式属性,而不是 CSS 级联。

由于您没有在此处设置正确的,因此默认值为""

> "" <= 0
true

由于空字符串小于或等于零,因此将其设置为 "100px"

下次测试时:

> "100px" <= 0
false

所以你将它设置为"0px",然后:

> "0px" <= 0
false

您应该改为测试 parseInt(form_pos.style.right, 10) 并特殊封装 NaN 值。

关于javascript - 脚本只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090941/

相关文章:

javascript - Socket.io 中的 `.acks` key 是什么

javascript - Canvas drawImage 不起作用,但 fillrect 起作用

javascript - 如何获取以下 ES6 循环中的前面的文本?

javascript - 从动态变量中获取值

jquery - jScrollPane:Webkit中拖动jspDrag位时水平滚动条向左移动

javascript - 如何通过 Jquery 或 Javascript 隐藏/显示 div?

jquery - 当内部元素 "leak"它们的边距时,如何获得外部元素的正确高度?

html - 创建一个当你向下滚动时消失/缩小的 div?

javascript - AngularJS 2 中的 #num、[(ngModel)] ="num"和 [value] ="num"之间选择什么

javascript - Chrome 扩展不会从弹出文件加载我的 JavaScript