الجمعة، 12 أكتوبر 2012

درس انشاء السلايد شو بـ 3 طرق

  تعلم انشاء السلايد شو بـ 3 انماط متطورة slideshow  


درس انشاء السلايد شو بـ 3 طرق slideshow | ابداع ديزاين abda3 design السلايد شو , الجميع يعرفه , نراه كثيرا , او ربما سمعنا عنه اصبح جزء وعنصر مهم ويستخدم بكثره في التصاميم العصرية هناك اشكال وانماط وتأثيرات مختلفه له , اليوم سوف اشرح لكم طريقه من عشرات الطرق تمكننا من عمل السلايد شو وبانماط مختلفه في البدايه اود ان اوضح ان الكود من اجتهادي الخاص , واحببت ان اشرحه لكم لكي اعطيكم الفكره التي من خلالها نستطيع ان نقوم باشياء عده غير السلايد شو كما ويمكن للبعض استخدام الامثله ان ارادو لا يوجد اي مشكله سنبدأ باسم الله النمط الاول - في البدايه اود ان اوضح كيف سنعمل اولا النمط الاول هو عباره عن سلايد شو يعمل تلقائيا ويعرض فيه نص او اذا احببت صور ونص كما تريد وتستطيع ايقاف العمل التلقائي ويمكنك ايضا اعاده تشغيله التأثير : اختفاء المحتوى الحالي ومن ثم ظهور تدريجي للمحتوى الجديد اولا كيف ستكون التركيبه للسلايد شو اي الـ (html)

درس انشاء السلايد شو بـ 3 طرق slideshow | ابداع ديزاين abda3 design


كود الـ PHP:


<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 --> 
كود الـ PHP:
                 
<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;/* مهم لاننا سوف نحتاج لاعطاء عناصر داخليه بوزشن */
}
 لدينا صندوق خارحي سوف يحتوي صندوق اخر يسمى con هذا الصندوق هو

الذي يحتوي على صناديق المحتويات(slide) وعرضه سوف يكون حسب عدد صناديق المحتويات وبما انن قمنا باعطاء الصندوق الخارجي خاصيه

وكل (slide)سوف تأخذ نفس عرض الـ container بذلك نضمن اننا سوف نرى فقط
overflow:hidden;
(slide)واحده امامنا والاخريات سوف تختفي لانها خارج حدود الـ container

لكن كيف سنرى الاخريات , ببساطه سوف نقوم بتحرك الـ con الذي يحتوي على الـ


slide وسوف نحركه بمقدار عرض الـ slide الواحده وبذلك سنرى واحده تلو الاخرى
دعونا لا نستبق الامور ونركز والان
تنسيق الـ con

كود الـ PHP:

.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
                ونحن نريدها صفر وسنستخدم هذه الخاصيه في الانماط التي فيها اسمهم تستخدم في التحريك
            */
    }
لكن ماذا عن عرض الـ con ? سوف نقوم باعطائه عرض من خلال الـ javascript
لكي يكون مرن بحيث العرض يتغير حسب عدد الـ slides
وهذا يعطينا مرونه كبيره
الان سوف نقوم بعمل الـ css للـ slide
كود الـ PHP:

.slide {
    width:560px;/* غير مهم */
    padding:20px; /* 560+40 = 600 (عرض الـ con)*/
    height:200px;/* 200+40 = 240* (ارتفاع الـ con)/
    float:left;
لماذا العرض غير مهم ؟ لاننا سوف نقوم باعطائه عرض من خلال الـ jquery
حسب عرض الـ 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> 
الان داخل ملفـ script.js
كود الـ PHP:

 $(function(){ نكتب هنا الاكواد}); 

كود الجكويري + شرحه بالتعليقات
كود الـ PHP:


$(function(){  
            var realWidth= $('.slide').size(); //ايجاد عدد الـ slide
            var realslideWidth = $('.slide').outerWidth(); //ايجاد العرض الخارجي للـ slide
            var realslidewidth2 = $('.slide').width();//ايجاد عرض الـ slide
            var real_w = realslideWidth - realslidewidth2 ; //لمعرفه الـ padding
            var containerWidth= $('.container').width(); //عرض الـ container
            /*الان سنحدد عرض الـ slide
             ,وسوف يكون العرض هو نفس عرض الـ container
             لكن ننقص منه الـ padding
             الخاص بـ slide
             لكي تكون النتيجه متساويه تماما
            */
            $('.slide').css('width',containerWidth-real_w); //تحديد عرض الـ slide
           
            /*الان سوف نحدد عرض ال
             con
             وسوف يكون حسب عدد الـ
             slide
             */
            $('.con').width((containerWidth)*realslideWidth); //تحديد عرض الـ con
            var 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;/*لاخفاء النص*/
 } 
وعند وضع الماوس او الضغط

كود الـ PHP:

.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;//تعطيل التصرف الافتراضي للرابط                  
               });


معاينة "أي لغة برمجة أقوى أو أفضل ?!" |  ابداع ديزاين Abda3 Design  لخدمات التصميم والبرمجة
... نهاية الشرح ...
معاينة "أي لغة برمجة أقوى أو أفضل ?!" |  ابداع ديزاين Abda3 Design  لخدمات التصميم والبرمجة

اقرا ايضا :

  سلايدر شو لعرض المواضيع لمدونات   
  طريقه تثبيت صفحه رئيسيه للمدونه   

ولأي إستفسار الرجاء ترك تعليقاتكم لأقوم بالإجابة عليها في القريب العاجلمعاينة "أي لغة برمجة أقوى أو أفضل ?!" |  ابداع ديزاين Abda3 Design  لخدمات التصميم والبرمجة
لا تقرأ وترحل شارك معنا بتعليق فنحن نسعى لنقدم لك الافضل والاجمل





ضع تعليقك

0 التعليقات:

البحــث

English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified

المتابعون

استثمارا للخبرات العالية والإمكانات التقنية المتميزة والطاقات البشرية الكبيرة التي تتميز بها "ابداع" أنشأت المؤسسة إدارة تتبنى عمل المواقع الخدمية المتنوعة للأفراد والهيئات والمؤسسات الكبرى. كما يمكنها عمل مواقع للتجارة الإلكترونية تتمكن الشركات والمتاجر من ترويج منتجاتها في كافة أنحاء العالم وتزويد مواقعها بإمكانية البيع عبر الإنترنت وتشمل خدمة بناء مواقع الإنترنت عدة مراحل بدأ من عملية التصميم المبدئي للموقع، وحتى الانتهاء منه، والقيام بتحديث الموقع كلما تطلب الأمر كما تتميز مؤسسة "ابداع" بأقوى فريق عمل متواصل مع العملاء 24 ساعة على مدار الأسبوع وتمتاز أيضا بكفاءة الدقة والسرعة في العمل لذلك نحمد الله العلي العظيم على منحنا تلك القدرة