【发布时间】:2015-10-04 21:29:13
【问题描述】:
所以我有一个函数,当输入值发生变化时会调用它。 它检查新值是否不是'',然后它应该将输入字段向左滑动一点,以便为“清除”按钮腾出空间,但我只是不知道该怎么做。
这就是我所拥有的。
<div class="searchbox">
<input type="text" ng-model="search" ng-change="filterHeaders()"
ng-focus="changeSearchValue()" ng-blur="changeSearchValue()" />
<button id="clearSearch">x</button>
</div>
请忽略 ng-stuff,但我把它留在这里,所以毫无疑问如何调用该函数。它是从角度调用的。
$('#clearSearch').hide();
searchButton = function() {
if($('.searchbox input').val() !== '') {
if($('#clearSearch:hidden')) {
$('.searchbox input').stop().animate(
{marginRight: 20},
{queue: false, duration: 500}
);
$('#clearSearch').stop().fadeIn(500);
}
}
};
但是,当然,它并没有像我想要的那样工作。它首先跳到左边,为按钮的出现留出空间,就像没有任何动画一样,只有在开始向左滑动 20px 之后。
我明白,marginRight 不是实现这一目标的方法,但我没有其他想法。你怎么看?
tldr:我想向左滑动输入,以便为按钮淡入腾出空间。同时。
【问题讨论】:
-
你的小提琴在 Chrome 中很适合我。
-
@dgavian 不。尝试将输入动画的持续时间更改为 2000 以查看问题所在
标签: javascript jquery