javascript-无法减少或增加-webkit-transform的属性值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-无法减少或增加-webkit-transform的属性值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1443字,纯文字阅读大概需要3分钟。
内容图文
![javascript-无法减少或增加-webkit-transform的属性值](/upload/InfoBanner/zyjiaocheng/679/3970cc13295b41e2824fca21f420179c.jpg)
给出以下代码:
$('#slider').css('-webkit-transform', 'translate(-=950px)');
它什么也不会做.如果我手动将translate的值设置为例如-1000px,则执行上面的代码只会完全删除该属性,就像解析该属性时出错一样.
CSS转换实际上可以增加或减少属性值吗?
解决方法:
jQuery的=和-= CSS相对数值仅在the beginning of the value处有效.
当无前缀属性不可用时,jQuery 1.8会自动检测供应商前缀,因此您不需要jQuery代码中的CSS供应商前缀.
好像CSSOM getComputedStyle API(由jQuery的.css()getter内部使用)始终返回transform属性的矩阵,因此让我们使用它:
var $el = $('#slider');
var matrix = $.map(
$el.css('transform') //get computed transform value, e.g.: matrix(1, 0, 0, 1, 1000, 0)
.slice(7, -1) //strip leading "matrix(" and trailing ")"
.split(', '), //split values into an array
Number //map to numbers
);
//[4] is the translateX
matrix[4] -= 950;
$el.css('transform', 'matrix(' + matrix.join(', ') + ')');
Fiddle-在Chrome 33,Firefox 28,IE 10中测试
注意:.css(‘transform’)将在不支持CSS3的浏览器中返回undefined,您可以将此代码包装在功能测试中,以免在涉及较旧的浏览器时抛出错误.
参考-W3C Recommendation – Coordinate Systems, Transformations and Units:
Translation is equivalent to the matrix
Or [1 0 0 1 tx ty], where tx and ty are the distances to translate coordinates in X and Y, respectively.
幸运的是,翻译非常容易操作.其他变换(例如旋转)需要一些数学运算-参见CSS Tricks – Get Value of CSS Rotation through JavaScript.
¹除极少数例外外,filter属性为bugged in Chrome,并且使jQuery的自动检测失败.
内容总结
以上是互联网集市为您收集整理的javascript-无法减少或增加-webkit-transform的属性值全部内容,希望文章能够帮你解决javascript-无法减少或增加-webkit-transform的属性值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。