时间: 2012-01-12 / 分类: WEB后端编程 - 开发与实践 / 浏览次数: / 0 个评论 发表评论
在jQuery中IE8及以下版本读写CSS中的background-position属性返回值为undefined的解决方案
项目前端开发的架构
WEB前端开发中的一些编程风格和书...
黄金分割与摄影构图
CSS Hack浏览器兼容IE6+IE7+IE8+IE9+FF

在开发的过程中,在jQuery中IE8及以下版本读写CSS中的background-position属性返回值为undefined,网络上和我同问的还有:

jQuery in IE8 .css() returning undefined for value

This seems to fail in IE8 (haven’t tested 7, but surely it will fail too) The value in the function returns undefined. It works fine in Firefox:

$(‘selector’).css(‘property’, function(index, value){ alert(value); });
The actual code from my script is as follows:

$(‘.scrollBkg’).css(‘background-position’, function(index, value){
var backgroundPosition = value.split(‘ ‘);
return (parseFloat(backgroundPosition[0]) + (($(this).hasClass(‘scrollLeft’) ? -1 : 1) * parseInt($(this).css(‘z-index’))) / 2) + ‘px ‘ + backgroundPosition[1];
});

Why is it that value is undefined in IE? Rather, how can I make this work as expected?

解决方法之一:

可以用backgroundPositionXbackgroundPositionY替代background-position,大致如下:

var backgroundPosition = (document.all && !window.opera)
?[$(this).css(‘backgroundPositionX’),
$(this).css(‘backgroundPositionY’)]
: value.split(‘ ‘);

即可解决

      站点地图 | 关于我 | 返回顶部
    Copyright © 2001-2013 { amiku.cn | zhangshunjin.com }. Powered by 

    阿米酷

    张顺金


    浙ICP备11002820号-1