Javascript 如何在JS(jQuery)中为translate指定一个加法赋值(+;=)?
我的期望是将加法赋值运算符(Javascript 如何在JS(jQuery)中为translate指定一个加法赋值(+;=)?,javascript,jquery,html,css,assignment-operator,Javascript,Jquery,Html,Css,Assignment Operator,我的期望是将加法赋值运算符(+=-=)设置为transform:translateX(),但我不知道该怎么做 我尝试了一些方法来做到这一点: $('.inline-grid').css({transform: 'translate(+= 4%, 0)'}) $('.inline-grid').css({transform: 'translate(''+=' + '4' + '%', 0')'}) $('.inline-grid').css({transform: "translate("+="
+=-=
)设置为transform:translateX()
,但我不知道该怎么做
我尝试了一些方法来做到这一点:
$('.inline-grid').css({transform: 'translate(+= 4%, 0)'})
$('.inline-grid').css({transform: 'translate(''+=' + '4' + '%', 0')'})
$('.inline-grid').css({transform: "translate("+=" + "10" + "%", 0)"})
$('.inline-grid').css({transform: '+=' + 'translateX(4%)'})
$('.inline-grid').css({transform: '+=translateX(4%)'})
但这些都不管用
是否有任何方法可以将+=
运算符赋给translateX()
代码:
函数延迟(回调){
让binding=callback.bind(this);
设置超时(绑定,400);
}
函数动作(){
设置间隔(()=>{
$('.inline grid').css({
转换:“translateX(10%)”
})
log(`waiting 400ms`);
}, 1900);
}
延迟(行动)代码>
#元素{
位置:相对位置;
字体大小:3rem;
字体系列:Helvetica;
显示器:flex;
柔性流:行;
证明内容:中心;
}
.内联网格{
位置:相对位置;
转换:转换(-10%,0);
}
.过渡{
过渡:所有1000ms三次贝塞尔(.93、.01、.1、.98);
}
巴兹尔叶
根据@Rory的提示,我制作了一个简单的模块来解决我的问题。我与大家分享这一点,并对在不久的将来像我一样有同样问题的人做一个简短的描述
此模块的主要功能是无限累积。不太可能.css()
方法在jQuery中,累积不受css的转换
属性的影响
感谢您的建议@Rorymcrossan:-)
=============最新更新===========
现在用户可以累积任何类型的单元
,例如px
,cm
,rem
,
甚至%
=============最新更新===========
该代码自2019年8月11日起已过时
/@BUG已修复
//@将代码更改得更清晰
//@USAGE:Operator.assembly(目标、增量、属性、单位);
常量运算符=(函数(){
函数累加(初始、acc、名称、单位){
this.init=document.querySelector(init);
this.acc=acc;
this.name=名称;
这个。单位=单位;
this.convert(this.result);
}
累积。原型={
转换:函数(回调){
让defaultDisplay=this.init.style.display;
this.init.style.display='none';
让bind=callback.bind(this),
getValues=window.getComputedStyle(this.init,null).getPropertyValue(this.name),
S2N=parseInt(getValues,10);
this.init.style.display=defaultDisplay;
结合(S2N);
},
结果:功能(值){
让getNewValue=value+this.acc;
this.init.style.left=getNewValue+this.unit;
}
}
返回{
汇编:(初始、附件、名称、单位)=>{
新累计(初始、会计科目、名称、单位);
}
}
}());
//==============================================
设置间隔(()=>{
运算符.汇编('.content',10',left','%');
}, 1000);代码>
#框{
最大宽度:2560px;
背景颜色:金色;
}
.内容{
左:10%;/*10px*/
位置:相对位置;
过渡时间:1000ms;
}
wowtested
是否有任何方法可以将+=运算符赋给translateX()
而不是以您尝试的方式。您需要以某种方式将CSS属性中的当前值检索到JS变量中,在JS中执行+=
操作,然后用JS中的新值更新CSS规则。@RoryMcCrossan所以我需要做的是:从CSS文件中获取翻译值
->在JS中计算它
->发送一个新值并覆盖到CSS文件
,对吗?@mplungjan我不会使用animate()
方法来解决我的问题。据我所知,使用animate()
方法而不是.css()
或添加类,进行转换
更加困难和复杂