我尝试使用CSS3属性给文本创建弧形,并更改JS以支持IE8。但是这并没有起作用。
this.$letters.each(function (i) {
var $letter = $(this),
transformation = (_self.options.radius === -1) ? 'none' : 'translateX(' + $letter.data('x') + 'px) translateY(' + $letter.data('y') + 'px) rotate(' + $letter.data('a') + 'deg)',
transition = (animation) ? 'all ' + (animation.speed || 0) + 'ms ' + (animation.easing || 'linear') : 'none';
filterIE = 'M11=' + $letter.data('x') + ', M21=' + $letter.data('y') + ',rotation=' + $letter.data("a") + 'deg'; // js function for supporting ie8
//alert(filterIE);
$letter.css({
'-webkit-transition': transition,
'-moz-transition': transition,
'-o-transition': transition,
'-ms-transition': transition,
'transition': transition
})
.css({
'-webkit-transform': transformation,
'-moz-transform': transformation,
'-o-transform': transformation,
'-ms-transform': transformation,
'transform': transformation,
'filter': "progid:DXImageTransform.Microsoft.Matrix(" + filterIE + ")" // js function for supporting ie8
});
function getIEVersion() {
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.test(ua) != null)
rv = parseFloat(RegExp.$1);
}
return rv;
}
function checkVersion() {
var ver = getIEVersion();
if (ver != -1) {
if (ver <= 9.0) {
//.css("-ms-filter","progid:DXImageTransform.Microsoft.Matrix(M11=1.4488887394336025, M12=-0.388228567653781, M21=0.388228567653781, M22=1.4488887394336025, SizingMethod='auto expand')"
//);// do something
}
}
}
checkVersion();
});
加粗的文本已经对我的js函数进行了更改。有人能帮我吗?我已经在jsfiddle上制作了一个演示。