-3

我正在尝试通过更改边距将 div 移动到一边,然后通过过渡移动回来。我有一个按钮,我想切换它的边距。div 向右移动,但是当我再次单击时,它并没有移回原来的位置。这就是我所拥有的:

HTML

<div id="movingdiv">
<a href="#" onclick="toggle()">Click Me!</a>
</div>

CSS

#movingdiv {
overflow: hidden;
left: 0;
top: 0;
right: 0;
bottom: 0;
background-color: gray;
-webkit-transition-duration: 0.3s;
-moz-transition-duration: 0.3s;
-o-transition-duration: 0.3s;
transition-duration: 0.3s;
}

JavaScript

function toggle () {

var el = document.getElementById("movingdiv");
if ( el.style.marginLeft="250px" ) {

    el.style.marginLeft="250px";

}

else {

    el.style.marginLeft="0px";

}

}

这是在行动: http ://codepen.io/dakoder/pen/nfimJ

4

3 回答 3

5

您正在分配,而不是检查相等性。此外,您的else病情和if病情混合在一起。将其更改为以下内容:

if ( el.style.marginLeft==="250px" ) {
    el.style.marginLeft="0px";
} else {
    el.style.marginLeft="250px";
}
于 2013-01-09T22:24:39.380 回答
1

改成

if ( el.style.marginLeft==="250px" ) {
于 2013-01-09T22:24:50.110 回答
1
if ( el.style.marginLeft="250px" ) {

这是分配,而不是比较。如果您想切换边距,请使用 === 或 !==(这似乎是您的意图)。

于 2013-01-09T22:24:55.520 回答