Javascript Jquery-单击缩小DIV
我正在使用下面的代码来设置div的动画Javascript Jquery-单击缩小DIV,javascript,jquery,css,Javascript,Jquery,Css,我正在使用下面的代码来设置div的动画 $(“i.legend-icon”)。单击(函数(){ $(“.scatterchartcolumn”).animate({width:'-=100px'}); }); 我想要潜水舱,但只想缩小。但它完全隐藏了100px的div。我不希望这种事发生 我希望动画停止,div返回到默认情况下再次单击同一div时的相同位置 这是密码。。当我再次单击I.legend图标时,我想停止它并使.scatterChart列的宽度与默认值相同。我还希望动画一直运行,直到再
$(“i.legend-icon”)。单击(函数(){
$(“.scatterchartcolumn”).animate({width:'-=100px'});
});
css
.scatterchartcolumn{
浮动:左;
显示:内联;
左边距:25px;
宽度:780px;
高度:300px;
}
我不确定“完全隐藏100px的div”是什么意思,但就切换位而言,您可以执行以下操作:
//缓存选择器(不要在每次单击时在DOM中搜索.scatterchartcolumn)
var col=$(“.scatterchartcolumn”);
var originalWidth=col.width();//保存宽度
$(“i.legend-icon”)。单击(函数(){
if(col.hasClass(“收缩”){//检查是否存在“收缩”类
col.removeClass(“收缩”)//切换类
.stop(true,true)//清除动画队列
.animate({width:originalWidth});
}否则{
col.addClass(“收缩”)
.停止(对,对)
.animate({宽度:'-=100px'});
}
});
至于您的注释:“我希望动画一直运行,直到我再次单击I.legend图标。目前它在一秒钟左右停止动画制作…”因为这是一个定时动画,代码将在给定的时间段内删除100px的宽度。(如果我们不知道何时单击按钮,jquery动画就不可能了)。如果你想缩小它直到你点击按钮,你可以让它在更长的时间内缩小到0px?我不确定你到底想要什么
更新 为了在较长的时间内设置动画,请将一个数字(毫秒)作为.animate()的第二个参数,如下所示:
.animate({width: 0}, 10000); // animate to 0 width over 10 000ms
我不确定“完全隐藏100px的div”是什么意思,但就切换位而言,您可以执行以下操作:
//缓存选择器(不要在每次单击时在DOM中搜索.scatterchartcolumn)
var col=$(“.scatterchartcolumn”);
var originalWidth=col.width();//保存宽度
$(“i.legend-icon”)。单击(函数(){
if(col.hasClass(“收缩”){//检查是否存在“收缩”类
col.removeClass(“收缩”)//切换类
.stop(true,true)//清除动画队列
.animate({width:originalWidth});
}否则{
col.addClass(“收缩”)
.停止(对,对)
.animate({宽度:'-=100px'});
}
});
至于您的注释:“我希望动画一直运行,直到我再次单击I.legend图标。目前它在一秒钟左右停止动画制作…”因为这是一个定时动画,代码将在给定的时间段内删除100px的宽度。(如果我们不知道何时单击按钮,jquery动画就不可能了)。如果你想缩小它直到你点击按钮,你可以让它在更长的时间内缩小到0px?我不确定你到底想要什么
更新 为了在较长的时间内设置动画,请将一个数字(毫秒)作为.animate()的第二个参数,如下所示:
.animate({width: 0}, 10000); // animate to 0 width over 10 000ms
JQUERY:
$(document).ready(function() {
$(".scatterchartcolumn").click(function(){
$(this).animate({
width: "0px",
height:"0px",
}, 1500 );
});
});
JQUERY:
$(document).ready(function() {
$(".scatterchartcolumn").click(function(){
$(this).animate({
width: "0px",
height:"0px",
}, 1500 );
});
});
下面的代码将帮助您做到这一点
$(".legend-icon").click(function () {
if ($(this).attr('id') == "icon1") {
$(".scatterchartcolumn").animate({ width: '-=100px' }, 2500);
$(this).attr('id', 'icon2');
}
else {
$(".scatterchartcolumn").animate({ width: '+=100px' }, 2500);
$(this).attr('id', 'icon1');
}
});
这是工作样本
看看这个网站,它有更多与jquery相关的常见问题。这可能会对您有所帮助。下面的代码将帮助您完成此操作
$(".legend-icon").click(function () {
if ($(this).attr('id') == "icon1") {
$(".scatterchartcolumn").animate({ width: '-=100px' }, 2500);
$(this).attr('id', 'icon2');
}
else {
$(".scatterchartcolumn").animate({ width: '+=100px' }, 2500);
$(this).attr('id', 'icon1');
}
});
这是工作样本
看看这个网站,它有更多与jquery相关的常见问题。它可能会对您有所帮助。
$(“.scatterchartcolumn”).animate({width:'-100px'})代码>$(“.scatterchartcolumn”).animate({width:'-100px'})代码>你好,兄弟!!谢谢你的回答。我真正想要的是。。现在,对于您的代码,当我单击I.legend图标时,它会收缩,但仅在特定时间收缩。正如你所说,这是一个定时动画。你能指导我如何将收缩设置为0px,这样我就可以使div收缩,直到我再次点击同一个按钮吗?@Ash更新了答案,这就是你想要的吗?不,那不是兄弟。。对不起,我不清楚。。点击i.legend-icon->div缩小至100px宽度。仅当(再次单击,i.legend-icon)->div返回原始宽度。@Ash如果要将宽度设置为100px,只需将100px(不带-=业务)写入Hi bro!!谢谢你的回答。我真正想要的是。。现在,对于您的代码,当我单击I.legend图标时,它会收缩,但仅在特定时间收缩。正如你所说,这是一个定时动画。你能指导我如何将收缩设置为0px,这样我就可以使div收缩,直到我再次点击同一个按钮吗?@Ash更新了答案,这就是你想要的吗?不,那不是兄弟。。对不起,我不清楚。。点击i.legend-icon->div缩小至100px宽度。仅当(再次单击,i.legend-icon)->div返回原始宽度。@Ash如果要将宽度设置为100px,只需写入100px(不带-=业务)