突发奇想,想用代码模拟一个阴影出来,就和代码模拟圆角模块一样去拼一个阴影出来。
可是写了一半,搁浅了,自己心里比较纠结:感觉写的出来用处不大,还不如PNG和CSS代码的效果好,且有一个最大的缺点就是在阴影对角那块无法对接,一般的阴影都是圆角的逐渐变淡,如这样的,我冥思苦想都无法实现这样的效果。
所以就随便写了如下一个简单的阴影效果:
代码如下:
<div class="articleQuote">
function shadow(elem, aspect, count, bColor, inOpacity){
// 阴影的节点
// 阴影的方向,包含 top/right/bottom/left 可以同时出现多个 如:"top right bottom left"
// 阴影的大小
// 阴影颜色
var bColor = bColor||"#000000";
var inOpacity = inOpacity || 100;
setStyle(elem, {position:"relative"});
_width = elem.clientWidth;
function topShadow(){
for(var i=0; i<count; i++){
var _top = i;
var _left = 0;
_left = i;
_width -= 2;
var _opacity = inOpacity-(inOpacity/count)*i;
var opDiv = document.createElement("div");
setStyle(opDiv, {background:bColor, height:"1px", width:_width+"px", fontSize:"0px", position:"absolute", left:_left+"px", top:_top+"px", overflow:"hidden"});
//alert(_opacity);
setOpacity(opDiv, _opacity);
elem.appendChild(opDiv);
}
}
topShadow();
}
function shadow(elem, aspect, count, bColor, inOpacity){
// 阴影的节点
// 阴影的方向,包含 top/right/bottom/left 可以同时出现多个 如:"top right bottom left"
// 阴影的大小
// 阴影颜色
var bColor = bColor||"#000000";
var inOpacity = inOpacity || 100;
setStyle(elem, {position:"relative"});
_width = elem.clientWidth;
function topShadow(){
for(var i=0; i<count; i++){
var _top = i;
var _left = 0;
_left = i;
_width -= 2;
var _opacity = inOpacity-(inOpacity/count)*i;
var opDiv = document.createElement("div");
setStyle(opDiv, {background:bColor, height:"1px", width:_width+"px", fontSize:"0px", position:"absolute", left:_left+"px", top:_top+"px", overflow:"hidden"});
//alert(_opacity);
setOpacity(opDiv, _opacity);
elem.appendChild(opDiv);
}
}
topShadow();
}
有兴趣的同学继续完善吧,有好的观点也可在评论中提出,共同探讨。