CSS3 3D Transform – بخش اول

316 روز پیش

پويا صادقى , آموزش CSS

 CSS3 3D Transform   بخش اول

ایجاد جلوه های سه‌بعدی برای المنت‌های وب با استفاده از CSS3

قبلا درمورد transform دوبعدی نوشته بودم ، transform دوبعدی در اکثر مرورگرهای مدرن (Firefox+3.5 / Chrome / Opera+10.6 / Safari+3 / IE+9) پشتیبانی میشه ولی توابع سه‌بعدی هنوز در فایرفاکس و اپرا پشتیبانی نمیشه و فقط در IE+10 و Chrome+12 و Safari+4 قابل اجرا هستن.مثل توابع دوبعدی ، این توابع هم با کد transform  در CSS نوشته میشه:

-webkit-transform:
-ms-transform:

استفاده از تابع پرسپکتیو

perspective یا ژرفانمایی یکی از مهمترین فاکتورهای کار با بعد سومه.

ژرفانمایی یا پرسپکتیو در زمینه دید و پندار دیداری، راهی است که در آن اشیا و چیزها بر پایهٔ دوریشان و یا ابعاد و یا جایگاهشان نسبت به چشم، برای چشم ما نمایان می‌شوند. (ویکی‌پدیا)

در تصویر زیر انتهای جاده مشخص نیست و ما فقط یه نقطه کور میبینیم. عمق این تصویر ، تا جایی که به نقطه کور میرسه است. در CSS هم ، برای استفاده از محور Z ها، باید ابتدا عمق رو مشخص کنیم، یعنی طول محور Z ها.(نمونه تغییر مقدار پرسپکتیو)

 CSS3 3D Transform   بخش اول

اول یه div ایجاد میکنیم با کلاس container و 4 تا div فرزند داخلش قرار میدیم:

<div class="container">
<div class="d1">D1</div>
<div class="d2">D2</div>
<div class="d3">D3</div>
<div class="d4">D4</div>
</div>

حالا در CSS ، از تابع پرسپکتیو در کلاس container استفاده میکنیم. (من 600 پیکسل درنظر میگیرم)

.container{perspective:600;-webkit-perspective:600;}

*دقت کنیدکه تابع پرسپکتیو باید برای عنصر والد تنظیم بشه ؛ همونطور که برای container که والد چهار تا div بود تنظیم شد.

اینم برای 4 تا div:

.d1,.d2,.d3,.d4{
background:#bbb; width:100px;height:100px;
margin:20px auto;font-size:85px;border-radius:5px;}

 CSS3 3D Transform   بخش اول

حالا میخوایم برای این 4 تا div ، از توابع transform استفاده کنیم:

تابع translate3d

همونطور که با استفاده از translate میتونیم اجزای وب رو در محورهای X و Y جابجا کنیم، با استفاده از translate3d و translateZ میتونیم عناصر وب رو در محور Z هم جابجا کنیم:

translate3d(x, y, z)

 

.d1{-webkit-transform:scale3d(3,1,1);-ms-transform:scale3d(3,1,1);}

کد بالا div اول ما رو به صورت زیر درمیاره،در محور X ها سایزش رو سه برابر میکنه:

 CSS3 3D Transform   بخش اول

میریم سراغ div دوم:

تابع translateZ

با استفاده از تابع translateZ ، باکس دوم رو، روی محور Zها، جابجا میکنیم:

.d4{-webkit-transform: translateZ(300px);-ms-transform: translateZ(300px);}

چیزی که دیده میشه، یه باکس بزرگتره، ولی درواقع D2 داره از نقطه کور فرضی، دور میشه و به چشم شما نزدیک میشه:

 CSS3 3D Transform   بخش اول

تابع transform-style

این تابع برای مشخص کردن نوع transform هست. 2 حالت داره:
حالت عادی: هیچ المنتی با جابجاشدن در محورهای x و y و z بر روی المنت های دیگه قرار نمیگیره:

transform-style: flat;

حالت سه‌بعدی:وقتی یک المنت در محورهای x و y و z جابجا بشه میتونه بر روی المنت‌های دیگه قرار بگیره:

transform-style: preserve-3d;

برای درک بهتر، نمونه استفاده از تابع transform-style رو ببینید

*دقت کنید که transform-style هم مثل تابع perspective ، باید برای عنصر والد معرفی بشه:

.container{perspective:600;-webkit-perspective:600;
transform-style: preserve-3d;-webkit-transform-style: preserve-3d;}

تابع perspective-origin

این تابع برای جابجا کردن نقطه کوره: دو مقدار میگیره و مقادیر پیش فرضش هم 50% و 50% هست:

-webkit-perspective-origin:50% 50%;

میتونیم به جای % از پیکسل یا left ، right و center استفاده کنیم. (نمونه)

* تابع perspective-origin هم برای والد تعریف میشه:

.container{perspective:600;-webkit-perspective:600;
transform-style: preserve-3d;-webkit-transform-style: preserve-3d;
-webkit-perspective-origin:50px 20px;}

CSS3 3D Transform – بخش دوم »

نوشته شده توسط
سلام! من پویا صادقی هستم؛ طراح وب استاتیک ، CSS/HTML ، دانشجوی نرم افزار. می تونید من رو در توییتر دنبال کنید، گالری من رو در deviantart ببینید، یا با ایمیل info@Pasargad-Graphic.com تماس بگیرید.



وبگردی

Design By Pouya Saadeghi Based on Mintaka Theme WPCorner

Copyright © 2012 Pasargad-Graphic