بسم الله الرحمان الرحيم ، البارحة و انا اتجول بين منصات الجافا سكربت ، وجدت منصة lightview التي تعتمد في عملها على مكتبة prototype ، غالبا ما نستعمل هذا التطبيق كمعرض لصور ، أو عرض فيديو ، او أي شيء متسلسل .
في تطبيقاتنا ، قد نريد أن نعمل حركة إظهار نافذة أنيقة بمثل هذا الشكل ، إلا أننا نرى ان تطبيق lightview كبير الحجم ، و فيه خصائص كثيرة قد لا نحتاجها في مرادنا ، كذلك نحاول ان نراعي حجم الصفحة ، قد نكون نستعمل مكتبة jquery في موقعنا ولا نريد ان نكثر المكتبات حتى لا يصبح موقعنا بطيئا جدا ، لذلك حاولت على السريع عمل المراد المبسط بـ jQuery ، حيث أنه لا يكلف أكوادا كثيرة ، و يوفي بالغرض المطلوب ( إظهار محتويات في نافذة انيقة ) ،
مثال : Demo
اضغط هنا لزيارة صفحة المثال
الشرح :
طبعا ، حتى اتمكن من إظهار محتوياتي كما أريد و بكل حرية ، لابد ان تكون النافذة من نوع div عادية ، و ليس من نوافذ الجافا سكربت المعروفة ، لذلك سأستعمل هذا الكود html لعرض النافذة ، وما بداخلها :
<div id="hideshow" > <div id="fade"></div> <div class="popup_block"> <div class="popup"> <a id="aa" href="javascript:hideDiv()"> <img src="images/close.png" class="cntrl" title="أغلق" /> </a> <h3>عنوان</h3> <p>هنا المحتوى او النص</p> </div> </div> </div>
تم استعمال صورة واحدة ، و هي صورة إغلاق النافذة ، ستجدها هنا :
سأجعل للنافذة زرا كالتالي :
<a href="#" id="ee">اضغط هنا لإظهار النافذة</a>
طبعا بعد ملأ الصفحة بالمحتويات ، هذا فقط مثال ،
تنسيقات css :
/* ** Fez-Soft ** 2009 */ body { height: 100%; margin: 0; padding: 40px; font: 12px tahoma; background: #eee; position: relative; } h1 , #ee{ font:24px "times new roman"; } img { border: none; } #hideshow { position: absolute; width: 100%; height: 100%; top: 0; left: 0; } #fade { background: #000; position: fixed; width: 100%; height: 100%; filter:alpha(opacity=80); /* الشفافية من جيل css3 */ opacity: .80; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; /*--IE 8 شفافية --*/ left: 0; z-index: 10; } .popup_block { background: #ddd; padding: 10px 20px; border: 10px solid #fff; float: left; width: 480px; position: fixed; top: 20%; left: 50%; margin: 0 0 0 -250px; z-index: 100; } .popup_block .popup { float: right; width: 100%; background: #fff; margin: 10px 0; padding: 10px 0; border: 1px solid #bbb; } .popup h3 { margin: 0 0 20px; padding: 5px 10px; border-bottom: 1px solid #bbb; font: 18px "times newroman"; } .popup p { padding: 5px 10px; margin: 5px 0; font: 12px tahoma; } .popup img.cntrl { position: absolute; right: -20px; top: -20px; }
عادي جدا ، تم استعمال الشفافية فيه من css3 ، بالنسبة لل ie6 لن أضع له أي ترقيع هنا ، مع انني عملته ، لأنني قررت ألا أدعمه في الدروس ، لعلنا نتقدم بمتصفحاتنا و تفكيرنا
بالنسبة لكود jQuery فهو كالتالي :
jQuery.fn.fadeToggle = function(s, fn){ return (this.is(":visible")) ? this.fadeOut(s, fn) : this.fadeIn(s, fn); }; $(document).ready(function(){ $("#hideshow").hide(); $("#ee").click(function () { $("#hideshow").fadeToggle(2000); }); $("#aa").click(function () { $("#hideshow").fadeOut(2000); }); });
ملاحظة أخيرة ، لا تعمل الحركة في صفحة لا تستعمل كل الصفحة ، أي تترك مكانا شاغرا غير مستعمل ولو بالتصميم . لأنه بعد استدعاء النافذة ، سيتم إظهارها فقط في هذا الجزء المستعمل من الصفحة في كل المتصفحات ما عدى موزيلا فايرفوكس ، لذلك لتتفادى هذا ، اجعل التصميم أو المحتوى يملأ كل صفحتك .
اتمنى التوفيق للجميع في مشاريعه
و السلام عليكم ورحمة الله وبركاته
مرحبا ، اسمي محمد شاطر ، Mohammed chater , أعرف تحت مسمى Fez-Soft, طالب و مصمم و مطور تطبيقات ، من فاس المغرب . . يمكنك أن تتعرف علي اكثر من
و الله شيء جميل
اسمح لي أسألك أخي : هل درست تصميم المواقع في مدرسة خاصة أو مجهود شخصي ؟
لأنني أريد السير في نفس المجال لكن الأهل ينظرون للأمر باستخفاف (..) أظن أنني أطلت عليك :)
بالتوفيق أخي و سوف أحاول تطبيق المثال
اهلا ، شكرا لمرورك
بالنسبة لسؤالك ، مدرسة خاصة مع قليل من الاجتهاد الشخصي
بالنسبة لمن يستخف بالأمر ، فالأمر ليس كذلك لأنه وظيفة كثير من المطورين العالميين
بالتوفيق
السلام عليكم ورحمة الله وبركاته
جميل ياخي محمد, لكن ما عملته هو الآتي:
أنشات 3 ملفات ملف خاص بالــHTML وآخر بالــــ CSS والاخير خاص بـــ js لكن حين تطبيق المثال تفتح لي الصفحة مع وجود النص بشكل كامل والنافذه معا وعند المحاولة بالضغط على زر الاغلاق لا يعمل….. :(
أرجو التكرم بمساعدتي
وشكراً
أحمد : لا تنس ملف مكتبة jQuery
أصبحت 4 ملفات لكن للاسف مازالت النتيجة هي لم تتغير :)
اتبع الطريقة المشروحة في الدرس و سترى النتيجة ، لو لم توفق في ذلك ، يمكنك زيارة صفحة المثال و استخراج الأكواد منه
بالتوفيق احمد
صراحه درس في قمة الروعة
تسلم قلبي