ارباح من الانترنت
اهلا وسهلا بك عزيزى الزائر
موقعنا ارباح من النت يقدم لك ماتريد حتى تصبح غنيا من جلوسك امام الانترنت
انتهز هذه الفرصة
سجل معنا
ويمكنك الاستفادة من جميع خدمات الموقع

انضم إلى المنتدى ، فالأمر سريع وسهل

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


استعرض الموضوع التالياذهب الى الأسفلاستعرض الموضوع السابق
admin
admin
ادارة المنتدى
ادارة المنتدى
ذكر
الابراج : العقرب
عدد المساهمات : 834
تاريخ التسجيل : 03/05/2010
العمر : 54
http://floss.egyptfree.net

طريقة احترافية لعمل الـسلايد شو  slideshow Empty طريقة احترافية لعمل الـسلايد شو slideshow

الثلاثاء ديسمبر 28, 2010 4:01 pm
يعتبر تصميم سلايد شو
من احدث التقنيات فى عالم المواقع والمنتديات ووجدت انه لابد من شرح هذا
الموضوع الهام الذى يوفر ميزة كبيرة لموقعك او منتداك


ومن لا يعرف السلايد شو هذه صورة للمعاينة

طريقة احترافية لعمل الـسلايد شو  slideshow DYq09875

هيا بنا لشرح كيفية التنفيذ : -

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


التأثير : اختفاء المحتوى الحالي ومن ثم ظهور تدريجي للمحتوى الجديد



اولا كيف ستكون التركيبه للسلايد شو اي الـ (html)








كود :




المحتوى سوف يكون داخل




كود :



لنرى صوره توضيحه لما سوف نقوم بعمله



الصورة تم تقليصها , إضغط على هذا الشريط لعرض الصورة الأصلية..
طريقة احترافية لعمل الـسلايد شو  slideshow Slidei



لنبدأ بالـ css



اولا تنسيق الصندوق الخارجي (الذي يحتوي جميع العناصر الداخليه) - container





كود :

.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 بذلك نضمن اننا سوف نرى فقط



(slide)واحده امامنا والاخريات سوف تختفي لانها خارج حدود الـ container



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





دعونا لا نستبق الامور ونركز والان



تنسيق الـ con



overflow:hidden;
slide وسوف نحركه بمقدار عرض الـ slide الواحده وبذلك سنرى واحده تلو الاخرى








كود :

.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









كود :

.slide {
width:560px;/* غير مهم */
padding:20px; /* 560+40 = 600 (عرض الـ con)*/
height:200px;/* 200+40 = 240* (ارتفاع الـ con)/
float:left;
}




لماذا العرض غير مهم ؟ لاننا سوف نقوم باعطائه عرض من خلال الـ jquery



حسب عرض الـ container وبذلك حتى لو قمنا بتوسيع الـ container سوف



توسع هذه تلقائيا او حتى لو قلصناها شيء جميل اليس كذلك



سوف نعود لتنسيق الـ ايقونات البدايه والايقاف فيما بعد



الان لنبدا بالـ jquery



نستدعي ملف المكتبه والملف الذي نريد ان نكتب فيه الاكواد











كود :






الان داخل ملفـ script.js






كود :

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



الان كود الـ jquery


شرح كامل في التعليقات




كود :

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







كود :

.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');}


الان سوف نرى اكواد الـ jquery






كود :

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




الان انتهينا من النمط الاول وسننتقل للنمط الثاني



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



التأثير : تحريك المحتوى امامك بدون اخفاء وظهور



النمط الثاني مطابق للاول في كل شيء الا في شي بسيط سوف اوضحه



ونفس الشيء في الـ html



لكن نغير الكلاسات - فضلت وضع كلاسات وليسid


مع العلم ان كل نمط كلاسات مختلفه لكي لا يحدث اخلاط في الـ jquery


والكلاسات افضل لانه ممكن اكرر نفس لسلايد ولكن انت تستطيع اختيار ما تشاء


حسب استخدامك للسلايد









كود :

slideshow(auto scroll)






لذلك في الـ css سوف نقوم باضافه الكلاسات الجيده فقط للتنسيق السابق



مثل هذا





كود :

.container, .container-scroll {}

ونفس الشيء للباقين


اما الاختلاف فهو في الـjquery


وبالتحديد في الدالهـ المسؤوله عن التأثير



لنرى الاختلاف





كود :

function animationscrolling(){

if(countscroll != realWidth_scroll-1){

$('.con-scroll').animate({'left'Sad-containerWidth_scroll)*iscroll},500);

iscroll++;
countscroll++;
}
else {

$('.con-scroll').animate({'left':0},500);

countscroll=0;
iscroll=1;
}
}


طبعا قمنا بتغيرر اسماء المتغير مع العلم من الممكن ابقائها نفس الشيء لانها



داخل فنكشن لكن افضل تغييرها



وقمنا بوضع اسماء الكلاسات الجديده



والاختلاف اننا حذفنا الـ fadeOut & fadeIn



استعرض الموضوع التاليالرجوع الى أعلى الصفحةاستعرض الموضوع السابق
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى