الجمعة، 12 أكتوبر 2012
درس انشاء السلايد شو بـ 3 طرق
تعلم انشاء السلايد شو بـ 3 انماط متطورة slideshow
السلايد شو , الجميع يعرفه , نراه كثيرا , او ربما سمعنا عنه اصبح جزء وعنصر مهم ويستخدم بكثره في التصاميم العصرية هناك اشكال وانماط وتأثيرات مختلفه له , اليوم سوف اشرح لكم طريقه من عشرات الطرق تمكننا من عمل السلايد شو وبانماط مختلفه في البدايه اود ان اوضح ان الكود من اجتهادي الخاص , واحببت ان اشرحه لكم لكي اعطيكم الفكره التي من خلالها نستطيع ان نقوم باشياء عده غير السلايد شو كما ويمكن للبعض استخدام الامثله ان ارادو لا يوجد اي مشكله سنبدأ باسم الله النمط الاول - في البدايه اود ان اوضح كيف سنعمل اولا النمط الاول هو عباره عن سلايد شو يعمل تلقائيا ويعرض فيه نص او اذا احببت صور ونص كما تريد وتستطيع ايقاف العمل التلقائي ويمكنك ايضا اعاده تشغيله التأثير : اختفاء المحتوى الحالي ومن ثم ظهور تدريجي للمحتوى الجديد اولا كيف ستكون التركيبه للسلايد شو اي الـ (html)
<h2></h2>
<div class="container"><!-- start container -->
<div class="con">
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
</div>
<a class="stop" href="#">stop</a>
<a class="start" href="#">start</a>
</div><!-- end container -->
<div class="slide"></div>
لنبدأ بالـ css
اولا تنسيق الصندوق الخارجي (الذي يحتوي جميع العناصر الداخليه) - container
كود الـ PHP:
.container {width:600px; /* عرض الصندوق الخارجي */height:290px;/* ارتفاع الصندوق الخارجي */background:#ddd;/* الخلفية */margin:40px auto;/* لكي يتم توسيطه وسط الصفحه بالاضافه للبعد من الاسفل والاعلى */overflow:hidden;/* مهم جدا لكي يخفي كل العناصر الخارجه من الصندوق */-moz-box-shadow:2px 3px 5px #000; /*ظل للنص يعمل مع الفيرفوكس*/-webkit-box-shadow:2px 3px 5px #000;/*كروم وسفاري*/box-shadow:2px 3px 5px #000;/*ظل للنص يعمل مع الاوبرا*/position:relative;/* مهم لاننا سوف نحتاج لاعطاء عناصر داخليه بوزشن */}
الذي يحتوي على صناديق المحتويات(slide) وعرضه سوف يكون حسب عدد صناديق المحتويات وبما انن قمنا باعطاء الصندوق الخارجي خاصيه
وكل (slide)سوف تأخذ نفس عرض الـ container بذلك نضمن اننا سوف نرى فقط
overflow:hidden;
(slide)واحده امامنا والاخريات سوف تختفي لانها خارج حدود الـ container
لكن كيف سنرى الاخريات , ببساطه سوف نقوم بتحرك الـ con الذي يحتوي على الـ
slide وسوف نحركه بمقدار عرض الـ slide الواحده وبذلك سنرى واحده تلو الاخرى
دعونا لا نستبق الامور ونركز والان
تنسيق الـ con
.con {margin:22.5px auto; /* تحديد البعد من الاعلى والاسفل*/height:240px;/* الارتفاع*/background:#bbb;/* لون الخلفية */position:relative;/*مهم جدا لانها ستسمح لنا بتحريك هذا الصندوق*/border-top:1px solid #fff;/*اطار علوي*/border-bottom:1px solid #fff;/*اطار سفلي*/color:#333;/*لون النص*/text-shadow:0px 1px 0px #ddd;/*ظل للنص - سنعالج الخلل في الاكسبلورر باستخدام اضافه للجيكيوري*/font-family:"Times New Roman",Georgia,Times, serif;/*نوع الخط*/font-size:17px;/*حجم الخط*/left:0; /*مهمه جدا في سفاري والاكسبلورر وكروم لانه القيمه الاصليه فيهم تعطىautoونحن نريدها صفر وسنستخدم هذه الخاصيه في الانماط التي فيها اسمهم تستخدم في التحريك*/}
لكي يكون مرن بحيث العرض يتغير حسب عدد الـ slides
وهذا يعطينا مرونه كبيره
الان سوف نقوم بعمل الـ css للـ slide
كود الـ PHP:
.slide {
width:560px;/* غير مهم */
padding:20px; /* 560+40 = 600 (عرض الـ con)*/
height:200px;/* 200+40 = 240* (ارتفاع الـ con)/
float:left;
}
حسب عرض الـ container وبذلك حتى لو قمنا بتوسيع الـ container سوف
توسع هذه تلقائيا او حتى لو قلصناها شيء جميل اليس كذلك
سوف نعود لتنسيق الـ ايقونات البدايه والايقاف فيما بعد
الان لنبدا بالـ jquery
نستدعي ملف المكتبه والملف الذي نريد ان نكتب فيه الاكواد
كود الـ PHP:
<script src="scripts/last.js" type="text/javascript" ></script><script src="scripts/script.js" type="text/javascript" charset="utf-8" ></script>
كود الـ PHP:
$(function(){ نكتب هنا الاكواد});
كود الجكويري + شرحه بالتعليقات
كود الـ PHP:
$(function(){var realWidth= $('.slide').size(); //ايجاد عدد الـ slidevar realslideWidth = $('.slide').outerWidth(); //ايجاد العرض الخارجي للـ slidevar realslidewidth2 = $('.slide').width();//ايجاد عرض الـ slidevar real_w = realslideWidth - realslidewidth2 ; //لمعرفه الـ paddingvar containerWidth= $('.container').width(); //عرض الـ container/*الان سنحدد عرض الـ slide,وسوف يكون العرض هو نفس عرض الـ containerلكن ننقص منه الـ paddingالخاص بـ slideلكي تكون النتيجه متساويه تماما*/$('.slide').css('width',containerWidth-real_w); //تحديد عرض الـ slide/*الان سوف نحدد عرض الconوسوف يكون حسب عدد الـslide*/$('.con').width((containerWidth)*realslideWidth); //تحديد عرض الـ convar i=1; //تعريف متغيرvar count = 0; //تعريف متغيرfunction animation(){ // الفنكشن الخاص بالحركهif(count != realWidth-1){/*الشرط يتحقق باننا لسنا في اخر سلايدلانناان كنا في اخر سلايد نريده ان يرجعنا للاولى بعدهااما ان لم نكن فعليه ان يتقدم للسلايد التاليه*/$('.con').fadeOut('slow'); //اختفاء تدريجي للسلايد الحاليه$('.con').animate({'left':(-containerWidth)*i},500);/*كيف سنجعله يعرض لنا السيلايد التاليه ؟نحرك الصندوق الكلي (con)بنفس عرض السلايد الواحده وبذلك تظهر السلايد التاليهوهذا ما فعلناه هناحركنا الـ conبمقدار عرض الـ slideالى اليسارلكنك لن تشاهد الحركه لان السلايد مختفيه !المتغير iيبين لنا في اي سلايد نحن الانالاولى الثانيه الثالثه اي واحده ؟لانه حسب اي واحده سوف نقرر كم مقدار الازاحه لليسار بالنسبة للcon*/$('.con').fadeIn(1500);/*بعد انتهاء الحركه سوف يتم عرض السلايد الجديدهوسوف تشاهدها*/i++; /*زياده المتغير بمقدار واحد*/count++;/*زياده المتغير بمقدار واحد*/}else { //في حال كنا في السلايد الاخيره$('.con').fadeOut('slow');//اخفاء السلايد الاخيره$('.con').animate({'left':0},500);/*ارجاع الـ conللبدايه اي انه سيعود للسلايد الاولى*/$('.con').fadeIn(1500);//اظهار السلايد والتي سوف تكون الاولىcount=0;//ارجاع القيم الافتراضيه للمتغيراتi=1;//ارجاع القيم الافتراضيه للمتغيرات}}/*تشغيل الفنكشنanimationمره كل 7 ثواني*/var e = setInterval(animation,7000);});
اولا الـ css
كود الـ PHP:
وعند وضع الماوس او الضغط.stop {
position:absolute; /*مهم*/
left:35px;/*البعد من يسار الـ container*/
bottom:1px;/*البعد من اسفل الـ container*/
width:24px;/*العرض*/
height:24px;/*الارتفاع*/
text-indent:-999999px;/*لاخفاء النص*/
background:url('../images/stop.png');/*مسار الخلفيه*/
}
.start {
position:absolute; /*مهم*/
left:85px;/*البعد من يسار الـ container*/
bottom:1px;/*البعد من اسفل الـ container*/
background:url('../images/start-clicked.png');/*مسار الخلفيه*/
width:24px;/*العرض*/
height:24px;/*الارتفاع*/
text-indent:-999999px;/*لاخفاء النص*/
}
.start:hover {background:url('../images/start-hover.png');}.stop:hover {background:url('../images/stop-hover.png');}.stop:active {background:url('../images/stop.png');}.start:active('../images/start.png');}
كود الـ PHP:
$('.stop').click(function(){ //عند الضغط على الايقاف
$(this).css({'background':'url("images/stop-clicked.png")'}); //تغيير الخلفيه للايقاف
$(this).next().css({'background':'url("images/start.png")'}); // تغيير الخلفيه للـ تشغيل
clearInterval(e); // ايقاف الـ slideshow
return false; //تعطيل التصرف الافتراضي للرابط
});
$('.start').click(function(){//عند الضغط على التشغيل
$(this).css({'background':'url("images/start-clicked.png")'}); // تغيير الخلفيه للـ تشغيل
$(this).prev().css({'background':'url("images/stop.png")'}); //تغيير الخلفيه للايقاف
e = setInterval(animation,7000); //بدء الـ slideshow
return false;//تعطيل التصرف الافتراضي للرابط
});
... نهاية الشرح ...
اقرا ايضا :
سلايدر شو لعرض المواضيع لمدونات
طريقه تثبيت صفحه رئيسيه للمدونه
ولأي إستفسار الرجاء ترك تعليقاتكم لأقوم بالإجابة عليها في القريب العاجل
طريقه تثبيت صفحه رئيسيه للمدونه
ولأي إستفسار الرجاء ترك تعليقاتكم لأقوم بالإجابة عليها في القريب العاجل
لا تقرأ وترحل شارك معنا بتعليق فنحن نسعى لنقدم لك الافضل والاجمل
التسميات:
Slidershow
بقلم : Abda3Design
لخدمات التصميم والبرمجة
إدارة تتبنى عمل المواقع الخدمية المتنوعة للأفراد والهيئات والمؤسسات الكبرى. كما يمكنها عمل مواقع للتجارة الإلكترونية كما تتميز مؤسسة "ابداع ديزاين" . بأقوى فريق عمل متواصل مع العملاء 24 ساعة على مدار الأسبوع وتمتاز أيضا بكفاءة الدقة والسرعة
ضع تعليقك
0 التعليقات:
إرسال تعليق