2012-08-19 29 views
10

Hãy nhìn vào hình dưới đây:CSS bóng "thực tế" (nguồn sáng)

skyscrapers

Các hộp màu xanh là divs. Bây giờ những gì tôi đang cố gắng làm là triển khai một loại chức năng 2.5D:

Tôi muốn các bóng màu xám có phần 3D-ish. Lúc đầu, tôi đã suy nghĩ chỉ định giá trị hộp bóng cho trục "Y" như sau:

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

nhưng kết quả là hình trên.

Bất kỳ ý tưởng nào về cách tạo bóng ở một bên, như có nguồn sáng từ đâu đó?

EXTRA - khoảng di chuyển "nguồn sáng" là gì?

+0

Tôi đang làm việc trên một ví dụ về jsfiddle. Cố gắng tạo nguồn sáng di động: D – Cristy

+0

Nếu bạn không bận tâm khi sử dụng plugin realshadows.js thì thực sự tốt. http://jsfiddle.net/AA69G/ – Jeemusu

Trả lời

19

Có bạn đi: http://jsfiddle.net/KaCDN/15/

Kéo nguồn ánh sáng để ảnh hưởng đến bóng tối.

khối Taller:

  • có đầu lớn, biên giới trái
  • thả bóng thêm
  • họ bóng là blurier
+1

+1, không chính xác (thực tế), nhưng +1 anyway –

+0

Đã cập nhật: các khối cao hơn có màu sáng hơn. – Cristy

+0

Update2: Khối cao hơn đổ bóng hơn các khối ngắn hơn. – Cristy

4

Làm thế nào để di chuyển bóng đơn giản hơn một chút:

$(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

+0

+1 thích nó! Đẹp nhất - tôi cũng sẽ thêm: nếu nguồn ánh sáng ở xa: làm cho bóng tối hơn 'phân tán';) –

+0

@Roko - Chắc chắn rồi, tại sao không! Đã chỉnh sửa câu trả lời của tôi? – adeneo

+0

+100 Vâng ... đó là một số efx thực tế! –

Các vấn đề liên quan