我已经在我的博客上写了一篇关于如何创建jQuery投影效果的文章。你可以
在这里查看。该插件基本上会在需要添加投影效果的元素后面创建一个div来创建投影效果。
在此处查看旧版本的演示。
现在,我已经修改了该插件,它现在使用
CSS3为支持它的浏览器创建投影效果,对于不支持它的浏览器,使用相同的
基于div的阴影。以下是代码:
(function($){
$.fn.dropshadow = function(settings){
var opts = $.extend({}, $.fn.dropshadow.defaults, settings);
var style = $('div')[0].style;
var isCSS3 = style.MozBoxShadow !== undefined || style.WebkitBoxShadow !== undefined || style.BoxShadow !== undefined;
return this.each(function(settings){
var options = $.extend({}, opts, $(this).data());
var $this = $(this);
if (!isCSS3){
var styles = {
position: 'absolute',
width: $this.width() + 'px',
height: $this.height() + 'px',
backgroundColor: options.shadowColor,
zIndex: options.shadowLayer,
top: ($this.offset().top + parseInt(options.distance, 10)) + 'px',
left: ($this.offset().left + parseInt(options.distance, 10)) + 'px'
};
}
else{
var boxshadow = options.distance + ' ' + options.distance + ' ' + options.blur + ' ' + options.shadowColor;
var styles = {
position: 'absolute',
width: $this.width() + 'px',
height: $this.height() + 'px',
backgroundColor: options.shadowColor,
zIndex: options.shadowLayer,
top: $this.offset().top + 'px',
left: $this.offset().left + 'px',
MozBoxShadow:boxshadow,
WebkitBoxShadow:boxshadow,
BoxShadow:boxshadow
};
}
$('<div>').appendTo($('body')).css(styles);
});
}
$.fn.dropshadow.defaults = {
shadowColor: '#DFDFDF',
shadowLayer: -1,
distance:'5px',
blur:'3px'
}
})(jQuery);
以下是如何使用它的方法:
$(window).load(function(){
$('.shadow').dropshadow({
shadowColor: '#cccccc',
shadowLayer: -100,
distance:'6px',
blur:'3px'
});
});
box-shadow
属性。对于早期版本的IE,您需要使用神秘的blur
滤镜。这大概是你能得到的最接近的效果:http://msdn.microsoft.com/en-us/library/ms532979(VS.85).aspx - Blackcoat