Javascript 如何使文本框在单击时向后移动(jQuery)?
在我的html文件中有一个具有相同类名的文本框,我希望单击时所有文本框都向上移动。但是如果它已经被点击了,我希望它移到原始状态。我已经编写了下面的代码,但如果再次单击,它只能向上移动,不能向下移动。 请帮忙。谢谢你Javascript 如何使文本框在单击时向后移动(jQuery)?,javascript,jquery,Javascript,Jquery,在我的html文件中有一个具有相同类名的文本框,我希望单击时所有文本框都向上移动。但是如果它已经被点击了,我希望它移到原始状态。我已经编写了下面的代码,但如果再次单击,它只能向上移动,不能向下移动。 请帮忙。谢谢你 $(".col-md-3").on("click", boxMove); function boxMove() { var offset = $(this).offset(); var sign = (offset.left < 0) ? 1 : -1;
$(".col-md-3").on("click", boxMove);
function boxMove() {
var offset = $(this).offset();
var sign = (offset.left < 0) ? 1 : -1;
if (sign < 0) {
$(this).animate({
left: (sign * 10) +'px',
top: (sign * 10) + 'px'})
} else {
$(this).animate({
left: (sign * -10) +'px',
top: (sign * -10) + 'px'})
}};
$(.col-md-3”)。打开(“单击”,移动框);
函数boxMove(){
var offset=$(this.offset();
变量符号=(偏移量左<0)?1:-1;
if(符号<0){
$(此)。设置动画({
左:(符号*10)+“px”,
顶部:(符号*10)+“px'})
}否则{
$(此)。设置动画({
左:(符号*-10)+“px”,
顶部:(符号*-10)+‘px’})
}};
删除else语句中的-
符号。因为-*任何东西都变成了分钟。所以您的代码永远不会回到原始位置
$(.col-md-3”)。打开(“单击”,移动框);
函数boxMove(){
var offset=$(this.offset();
变量符号=(偏移量左<0)?1:-1;
控制台日志(签名)
if(符号<0){
$(此)。设置动画({
左:(符号*10)+“px”,
顶部:(符号*10)+“px'})
}否则{
$(此)。设置动画({
左:(符号*10)+px',//移除`-`
顶部:(符号*10)+'px'})//删除`-`
}};代码>
.col-md-3{
左:10px;
位置:绝对位置;
}
您好
@prasad感谢您提供了一个漂亮简单的答案。
我已经按照您的建议添加了css代码:
.left {
left:-5px;
top: -5px;
position: relative;
}
在.js文件中:
$(".col-md-3").on("click", boxMove);
function boxMove() {
$(this).toggleClass('left')
};
这会在我的文本框上产生一个小的“点击”效果(类似于单击一个小按钮)。但我没有包括这一部分:
.col-md-3{
left:100px;
top:100px;
position:absolute;
transition:all 0.5s ease-in; /*its give the animation effect*/
}
因为不知何故,它使.col-md-3下的所有6个文本框相互对齐。
再次感谢 你到底不想做什么?你可以使用toggleClass和hasClass来检查当前状态是否被移动。谢谢@prasad。但是,在我从if/else语句中删除“-”符号后,它仍然不起作用:/它正在处理我的代码片段。最好您可以使用hello
。更新您的问题谢谢@prasad。只有当我调整窗口大小而不更改CSS代码时,它才起作用!?!当我添加CSS代码position:absolute时,当我单击文本框时,它会移动到屏幕的上部。(我只希望它向上移动+向左移动一点,达到10px,类似于“点击按钮”的效果)。但是,这种效果在正常大小的windown浏览器中不起作用(没有最小化窗口),我已经在Chrome v.58.3029和Firefox v.53.03中试用过了。@Lililashka查看我的更新答案。我被添加了另一个使用toggleClass
的方法。使用改变你的左和顶部的位置。左css。肯定是回到原来的位置了