Javascript 一个好的jQuery下拉阴影插件?
我在业余时间尝试学习javascript和jQuery。我通常在网站上做实验。我想在页面上出现某个元素时获得一种微弱的阴影效果。这使-Javascript 一个好的jQuery下拉阴影插件?,javascript,jquery,css,jquery-ui,jquery-plugins,Javascript,Jquery,Css,Jquery Ui,Jquery Plugins,我在业余时间尝试学习javascript和jQuery。我通常在网站上做实验。我想在页面上出现某个元素时获得一种微弱的阴影效果。这使- 这看起来好像该元素位于页面上其他元素的上方 使这个新元素成为重要的研究对象 我如何使用jQuery获得这个。在一些地方,他们建议使用“图像精灵”。但是我想避免使用图像,因为- 我不想每次都打开photoshop,我想为一些新元素添加阴影效果 图像加载需要时间。因此,只要元素出现在页面上,就需要时间来加载图像&阴影效果幻觉就消失了 另外,我听说CSS3内置了这种阴
我已经在我的博客上写了一篇关于如何创建jQuery下拉阴影效果的文章。你可以。该插件基本上是在这些元素后面创建一个div,以创建阴影效果 我现在修改了插件,它现在使用CSS3为支持它的浏览器提供阴影效果,或者为不支持它的浏览器提供相同的div阴影效果。代码如下:
/**
* Drop Shadow Plugin jQuery
* http://sarfraznawaz.wordpress.com/
* Author: Sarfraz Ahmed (sarfraznawaz2005@gmail.com)
*/
(function($){
$.fn.dropshadow = function(settings){
// Extend default settings
var opts = $.extend({}, $.fn.dropshadow.defaults, settings);
// Check if CSS3 is supported
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);
});
}
// set default option values
$.fn.dropshadow.defaults = {
shadowColor: '#DFDFDF',
shadowLayer: -1,
distance:'5px',
blur:'3px'
}
})(jQuery);
这是一个相当好的插件
您可以在此处看到演示:
是的,在我发布这个问题之前,我看了一下这个链接。我丢弃它主要是因为它是两年前被问到的。从那以后有了很大的变化,加上我不想在我的试验中采用一个未维护的代码库。但是IE呢?大多数人仍然使用IE.IE9支持
box shadow
属性。对于IE的早期版本,您需要使用奥术blur
过滤器。这是你能得到的最接近的结果:
/**
* Drop Shadow Plugin jQuery
* http://sarfraznawaz.wordpress.com/
* Author: Sarfraz Ahmed (sarfraznawaz2005@gmail.com)
*/
(function($){
$.fn.dropshadow = function(settings){
// Extend default settings
var opts = $.extend({}, $.fn.dropshadow.defaults, settings);
// Check if CSS3 is supported
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);
});
}
// set default option values
$.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'
});
});