Javascript赋值操作符与转换
Javascript Assignment Operators with transform
如果我有一个元素,我想把它比当前值多平移50px。为什么我不能这样做?
element.style.transform="translateX(+=50px)"
有这样的方法吗?
如果在样式表中设置了转换,则element.style.transform
将返回一个空字符串。你必须使用getComputedStyle
要将x转换为整数,使用:
var transform = parseInt(window.getComputedStyle(element, null).transform.split(',')[4]);
然后用这个来增加50像素:
element.style.transform = "translateX(" + (transform + 50) + "px)"
这里有一个小提琴:https://jsfiddle.net/uhuh9r64/
JS不理解CSS,反之亦然,但是CSS可以自己解决这个问题。
大多数人都不知道,ECMAScript (JS的专有名称)规范和CSS和DOM标准由不同的小组维护,几乎没有互操作的能力。它们之间的大多数接口都是在JS调用API时发生的,但JS通常不会考虑或关心它调用的是什么API。
也就是说,JS没有显式支持CSS,并将其视为字符串。
当你可以使用纯CSS转换元素时,这并不重要,而不需要JS参与(尽管你可以从JS应用转换)。一个简单的位置变换,即使在2D中,也可以很容易地将元素向下移动50px。
translateX()是一个css函数,用于在平面上水平移动元素。这个变换是由一个length
定义的,它定义了它水平移动的程度。下面是示例代码示例.....
exm.html
<div>
<p>welcome</p>
<p class="transformed">bar</p>
<p>thanks</p>
</div>
exm.css
p {
width: 50px;
height: 50px;
background-color: teal;
}
.transformed {
transform: translateX(10px);
background-color: blue;
}
相关文章:
- Javascript变量赋值|
- 无法为打字稿字典赋值
- Javascript-根据赋值顺序,按键合并对象数组
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何通过json对象数组为嵌套对象赋值
- 赋值后的回调函数
- ||(OR)运算符如何在赋值中工作
- 可以使用属性赋值实现多个函数
- 将ECMAScript 6析构函数赋值(ES2015)重构为旧版本的javascript
- 为什么 Javascript 在变量赋值时将 null 转换为字符串
- 获取JavaScriptvar的值并将其赋值's值转换为另一页中的PHP变量
- 如何在angularjs中将一个具有赋值的指令转换为另一个指令
- JavaScript模板引擎-将左手三进制(不带赋值)转换为条件语句
- Javascript赋值操作符与转换
- 澄清JavaScript操作符在赋值和加值时的优先级
- JavaScript赋值操作符'while'循环
- 关于JavaScript和PHP赋值操作符:为什么结果不同
- 使用Object.create()和使用赋值操作符有什么区别?
- JavaScript中包含两个赋值操作符的复合表达式的求值过程
- 重写JS中的赋值操作符