majid_kiani

پروژه ساخت اسلایدر با استفاده از CSS3

1 پست در این موضوع قرار دارد

اسلایدر ها بخش مهمی از اکثریت وبسایت های امروزی رو تشکیل میدن که به پویا تر شدن اونها کمک شایانی میکنه. مطمئنا اگر به درستی از قدرت نهان اسلایدر ها استفاده کنید علاوه بر این که وبسایت شما جلوه ای پویا تر میگیره موجب جذب مخاطب بیشتری هم برای وبسایت شما خواهد شد. معمولا اسلایدر ها قدرت گرفته از جی کوئری و یک سری کد های جاوا هستن ، اما تمرکز ما در این مطلب روی ساخت یک اسلایدر کامل قدرت گرفته فقط از CSS3 هست. شاید نتیجه کار مثل بعضی از بهترین و کاملترین اسلایدر هایی که امروز ها میبینیم نباشه ، اما بصورت تمام و کمال کار میکنه


<div id="content">

<div id="content-inner-1">
<div id="content-inner-2">
<div id="content-inner-3">
<div id="content-inner-4">
<div id="content-inner-5">
<div id="content-inner-6">

<div id="content-inner">
<div class="page" id="page1">
<img src="images/test1.jpg" alt="test1" title="test1">
<div class="page-info" id="info1">
<h2>Page 1</h2>
<div class="page-text">Lorem ipsum dolor sit amet.</div>
</div>
</div>
<div class="page" id="page2">
<img src="images/test2.jpg" alt="test2" title="test2">
<div class="page-info" id="info2">
<h2>Page 2</h2>
<div class="page-text">Lorem ipsum dolor sit amet.</div>
</div>
</div>
<div class="page" id="page3">
<img src="images/test3.jpg" alt="test3" title="test3">
<div class="page-info" id="info3">
<h2>Page 3</h2>
<div class="page-text">Lorem ipsum dolor sit amet.</div>
</div>
</div>
<div class="page" id="page4">
<img src="images/test4.jpg" alt="test4" title="test4">
<div class="page-info" id="info4">
<h2>Page 4</h2>
<div class="page-text">Lorem ipsum dolor sit amet.</div>
</div>
</div>
<div class="page" id="page5">
<img src="images/test5.jpg" alt="test5" title="test5">
<div class="page-info" id="info5">
<h2>Page 5</h2>
<div class="page-text">Lorem ipsum dolor sit amet.</div>
</div>
</div>
<div class="page" id="page6">
<img src="images/test6.jpg" alt="test6" title="test6">
<div class="page-info" id="info6">
<h2>Page 6</h2>
<div class="page-text">Lorem ipsum dolor sit amet.</div>
</div>
</div>
</div>

</div>
</div>
</div>
</div>
</div>
</div>

</div>

<ul id="nav">
<li class="button" id="button1"><a href="#content-inner-1"></a></li>
<li class="button" id="button2"><a href="#content-inner-2"></a></li>
<li class="button" id="button3"><a href="#content-inner-3"></a></li>
<li class="button" id="button4"><a href="#content-inner-4"></a></li>
<li class="button" id="button5"><a href="#content-inner-5"></a></li>
<li class="button" id="button6"><a href="#content-inner-6"></a></li>
</ul>

احتمالا از دیدن کُد های بالا هیچ چیز متوجه نشدید ، شاید این پروژه کمی متفاوت تر از پروژه های قبلی باشه که تا حالا کار کردید ، اما خُب در آخر متوجه نکات مهمی خواهید شد.

در کد بالا ما “content-slider” رو داریم که تمامی محتوا رو در خودش جا میده که ما “margin: 0 auto” میکنیمش و دیگه بهش دست نمیزنیم.

بعد ۲ بخش داریم : “content” و “nav”.

بخش Content صفحات ( اسلایدر هامون ) رو در خودش داره ، و بخش nav هم کنترلر ، که اسلایدر ها رو باهاش عوض میکنیم.

حالا در توی content متوجه میشید که content-inner-1 داریم تا content-inner-6. تمام اسلایدر به این ۶ تا Div بستگی داره و باهاش کار میکنه که در بعد توضیح میدم.


#content-slider {
font-family: arial;
width: 640px;
margin: 0 auto;
margin-top: 100px;
}

#content {
overflow: hidden;
width: 640px;
height: 480px;
-webkit-box-shadow: 0px 0px 50px 10px #c9c9c9;
-moz-box-shadow: 0px 0px 50px 10px #c9c9c9;
box-shadow: 0px 0px 50px 10px #c9c9c9;
}

#content-inner {
width:10000px;
height: 480px;
}

.page {
width: 640px;
height: 480px;
float: left;
}

کاری که الان کردیم این بود که اسلایدر رو به میانه صفحه آوردیم و ۱۰۰ پیکسل از بالای صفحه بهش فاصله دادیم.

استایل دیو “content” خیلی مهم هست ، مقدار “overflow” رو روی “hidden” گزاشتیم ، اینکار باعث میشه هر اسلاید/صفحه تنها زمانی باز بشه که انتخاب میشه.

دیو “content-inner” شامل تمام اسلاید ها (صفحات) ما میشه به همین دلیل عرضش رو روی ۱۰,۰۰۰ پیکسل تنظیم کردیم. در اسلایدر های دیگه معمولا جاوا اسکریپت عرض رو تنظیم میکرد ، اما توی این مطلب ما فقط از CSS3 استفاده میکنیم.


.page-info {
height: 90px;
background-color: rgba(99, 99, 99, 0.6);
position: relative;
margin-top: 0px;
bottom: 103px;
color: #dedede;
padding-left: 20px;
padding-top: 10px;
}

.page-info h2 {
font-size: 21px;
margin-bottom: 10px;
margin-top: 0px;
color: #fafafa;
}

.page-text {
font-size: 15px;
}[/color][/font][/color]
[color=#000000]


.button {
float: left;
background: #bababa;
width: 16px;
height: 16px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
margin-left: 5px;
margin-right: 5px;
}

.button:hover {
-webkit-box-shadow: inset 0px 0px 2px 2px #d4d4d4;
-moz-box-shadow: inset 0px 0px 2px 2px #d4d4d4;
box-shadow: inset 0px 0px 2px 2px #d4d4d4;
}

.button:active {
-webkit-box-shadow: inset 0px 0px 2px 2px #7a7a7a;
-moz-box-shadow: inset 0px 0px 2px 2px #7a7a7a;
box-shadow: inset 0px 0px 2px 2px #7a7a7a;
}

.button a {
display: block;
width: 16px;
height: 16px;
}[/color]
[color=#000000]

به کد بالا دقت کنید ، به عنوان مثال اگر ما الان در آدرس “http://www.example.com/index.html#example” باشیم ، قسمت دوم کد یعنی “:target” عمل میکنه. که در این مبحث دیو “example” نمایش داده میشه.

حالا ما از “:target” استفاده میکنیم تا اسلایدر رو به کار بندازیم. وقتی یک کاربر روی یکی از ۶ دکمه اسلایدر کلیک کنه قسمت “content-inner” باز میشه ، درست مثل جاوا اسکریپت.

این هم از کد :


#content-inner-1:target #content-inner {
-webkit-transition: all 400ms ease;
-moz-transition: all 400ms ease;
-o-transition: all 400ms ease;
transition: all 400ms ease;
margin-left: 0px;
}

#content-inner-2:target #content-inner {
-webkit-transition: all 400ms ease;
-moz-transition: all 400ms ease;
-o-transition: all 400ms ease;
transition: all 400ms ease;
margin-left: -640px;
}

#content-inner-3:target #content-inner {
-webkit-transition: all 400ms ease;
-moz-transition: all 400ms ease;
-o-transition: all 400ms ease;
transition: all 400ms ease;
margin-left: -1280px;
}

#content-inner-4:target #content-inner {
-webkit-transition: all 400ms ease;
-moz-transition: all 400ms ease;
-o-transition: all 400ms ease;
transition: all 400ms ease;
margin-left: -1920px;
}

#content-inner-5:target #content-inner {
-webkit-transition: all 400ms ease;
-moz-transition: all 400ms ease;
-o-transition: all 400ms ease;
transition: all 400ms ease;
margin-left: -2560px;
}

#content-inner-6:target #content-inner {
-webkit-transition: all 400ms ease;
-moz-transition: all 400ms ease;
-o-transition: all 400ms ease;
transition: all 400ms ease;
margin-left: -3200px;
}[/color]
[color=#000000]

0

به اشتراک گذاری این پست


لینک به پست
مهمان
این موضوع برای عدم ارسال قفل گردیده است.

  • مطالب مشابه

    • توسط mbonjakhi
      باسلام
      سوالی از خدمتتون داشتم.
      میشه من یه دامنه .ir خریداری کنم و کد های یک سایت خاص رو کلا کپی کنم و تو دامنه خودم بکار ببرم؟
      یعنی اینکه دیگه نیازی به طراحی سایت نداشته باشه و به راحتی سایتم ساخته بشه؟
      اگه امکانش هست واسم یه مقدار توضیح بدید باید چیکار  کنم.
      ممنون
    • توسط behnam_buss
      سلام
      بخش دسته بندی محصولات در ووکامرس من غیرفعال شده و دسته بندی هایی که قبلا انجام داده بودم رو نمی تونم ببینم و ویرایش کنم و یا حتی وقتی یه دسته بندی جدید هم می سازم نمایش داده نمیشه.
      هر محصول هم که اضافه می کنم و جایی که باید محصول رو تو دسته بندی خودش قرار بدم بازم دسته بندی رو تو قسمت ویرایش خود محصول نمی بینم و نمی تونم تو دسته ی خاص خودش قرار بدم.
      ضمنا همین مشکل برای بخش فهرست های سایتم هم بوجود اومده و فهرست ها رو نمی بینم و کلا بخش فهرست های وردپرسم غیرفعال شده و نمی تونم فهرست جدید بسازم.
      نکته ای که هست اینه که فهرست ها و دسته بندی های قبلی که ساخته بودم تو خود سایت که داره نمایش داده میشه درسته و تو بخش مدیریت وردپرس این مشکلات وجود داره!!!
    • توسط mmnaderi

      سلام،
      چند وقت پیش فریم‌ورک ‌Milligram را دیدم که خیلی ازش خوشم اومد،
      الان این فریم‌ورک سبک را راست‌به‌چپ کردم و غالب مستنداتش هم فارسی کردم.
      می‌تونید مراجعه کنید به: http://mmnaderi.ir/milligram-rtl
      و صفحه‌ی گیت‌هاب: https://github.com/mmnaderi/milligram-rt
    • توسط iHooMan
      درود و وقت بخیر 
       
      من  توی پروژه ای لازم دارم از فرم وب سایت مبدا وارد یه وب سایت دیگه بشم .
      که دو حالت داره یکی یوزر معمولی - یکی همکار 
      واسه یوزر معمولی فقط کپچا میخواد سایت مقصد  واسه همکار یوزر و پسورد و کپچا 
      من میخوام با یه فرم تو وب سایت خودمون اطلاعات بگیرم پاس بدم توی اون وبسایت نمیخوام اون اطلاعات تو وبسایت مقصد پر بشه ( لوگین توی وب سایت ما انجام بشه بعد به صفحه لوگین شده اونور پاس بده )
      از چی استفاده کنم ajax یا ... ? 
      روند کاریش تو وردپرس کسی میتونه توضیح بده ؟
      پینوشت : وب سایت مقصد از md5.js واسه اینکرپشن دیتا استفاده میکنه . 
       
      سپاس
       
    • توسط mehrshadmousavi

      مفهوم HTML 5:
      در این نسخه قدرت مدیریت دربرنامه های وب بر روی اجرا با حداکثر دقت و نظم وجود دارد و این کار با کد ابزارهای <header>, <menu>,<nav> , <menuitem> و ... . ممکن است.
      web developer قادرند برخی از ویژگی های شاخص  HTML 5 که  شامل: آهنگ، ویدئو، ذخیره ی منطقه در حالت آفلاین و ... با اصول بهینه سازی سایت همراه کنند. همچنین HTML 5 این اجازه را به کاربران خود می دهد که از خاصیت و ویژگی نوعی از تگ ها را استفاده کنند مانند تگ link و script؛ و حتی امکان استفاده از تگ های <article> و <<section در بهترین حالت را ممکن ساخته است. تا کنون ترفند هایی زیادی ابداع نشده است که بتوان به وسیله ی آن ها به نتایج مطلوب و باب میل رسید از این جهت درهنگام استفاده باید هوشمندانه عمل کرد.
      مفهوم HTML 6:
      ورژن 6HTML نسخه ی اصلاح شده ی  HTML ها است که دارای NameSpaces با ساختار XML می باشد. از ویژگی های مهمNameSpaces این است که با استفاده از تگ های <logo/>< logo>  و <toolbar/>< toolbar> قادر خواهید بود امکانی فراهم کنید تا سایت قادر به شناسایی و تشخص لوگو در صفحات وب سایت باشد. همچنین  از دیگر امکانات HTML 6  این است که طراحان سایت و وب دولپرها می توانند تگ <container> را به جای <’div id =’container > بهره ببرند.

      در حالت کلی  HTML 6 دارای دو نوع تگ تکی  که اطلاعات و خصوصیات راحمل می کنند اما داده ها شامل متن نمی باشد، و تگ های زوج یا جفتی که با متن هم می توانند همراه باشند.
      برخی از تگ های تکی (رفتاری) که در HTML 6 قرار دارند را با هم بررسی می کنیم که می توانند دارای namesapec   های زیر باشند:
      <html:html>
      <html:head>
      <html:title>
      <html:meta>
      <html:link>
      <html:a>
      <html:media>
      <html:body>
      <html:button>
      چند ویژگی که HTML6 را متمایز می کند:
       قابلیت تغییر اندازه تصاویر مرورگر ها
      زبان های قابل اجرا
      مدیریت بهتر در کنترل اشیای ویدئویی
      پیش پردازنده ها ی جایگزین
      دسترسی ایمن به اطلاعات