CSS“逼真”阴影(光源)

时间:2012-08-19 14:14:20

标签: jquery effects css3 light

看看下面的图片:

skyscrapers

蓝色方框是div。现在我要做的是实现一种2.5D功能:

我希望灰色阴影有些3D-ish。起初我想把盒子阴影值分配给“Y”轴,如下所示:

"box-shadow: -5px -5px 10px" + value.tallness +  "#888"

但结果是上图。

关于如何仅在一侧制作阴影的任何想法,就像来自某个地方的光源一样?

EXTRA - 移动“光源”怎么样?

3 个答案:

答案 0 :(得分:20)

你去了:http://jsfiddle.net/KaCDN/15/

拖动光源以影响阴影。

更高的块:

  • 有更大的顶部,左边框
  • 进一步投影
  • 他们的影子更加模糊

答案 1 :(得分:4)

如何更简单地移动阴影:

$(document).on('mousemove', function(e) {
    var elm = $("#test"),
        x = ~Math.round((e.pageX - elm[0].offsetLeft - 150) / 30),
        y = ~Math.round((e.pageY - elm[0].offsetTop - 150) / 30),
        z = 10+Math.abs(x)+Math.abs(y),
        cssVal = x+'px '+y+'px '+z+'px 10px #525252';

    elm.css({'-webkit-box-shadow' : cssVal, 'box-shadow' : cssVal });
});

FIDDLE

答案 2 :(得分:1)

更新的答案是使用像Shine.js(http://bigspaceship.github.io/shine.js/)这样的库来处理这个问题。