بسم الله الرحمن الرحيم ، البارحة و انا اتجول بين منصات الجافا سكربت ، وجدت منصة 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); }); });
ملاحظة أخيرة ، لا تعمل الحركة في صفحة لا تستعمل كل الصفحة ، أي تترك مكانا شاغرا غير مستعمل ولو بالتصميم . لأنه بعد استدعاء النافذة ، سيتم إظهارها فقط في هذا الجزء المستعمل من الصفحة في كل المتصفحات ما عدى موزيلا فايرفوكس ، لذلك لتتفادى هذا ، اجعل التصميم أو المحتوى يملأ كل صفحتك .
اتمنى التوفيق للجميع في مشاريعه
و السلام عليكم ورحمة الله وبركاته
هذه التدوينة نُشرت
في الثلاثاء, 10 نوفمبر, 2009 عند 1:22 ص و مصنفة تحت تصنيف JavaScript, css , xhtml.
يمكنك متابعة أي تعليقات عبر رابط RSS 2.0.
يمكنك ترك تعليق, أو تعقيب من مدونتك.
الوسوم :jquery, تأثير, تطبيق, محتوى, نافذة
-
لتكون على علم بآخر المواضيع و المقالات المضافة في fez-soft blog يمكنك الاشترك في :
- خلاصات المقالات
- خلاصات التعليقات
- متابعة الكاتب على twitter
- القائمة البريدية : بمجرد أن تضع بريدك الالكتروني و تشترك ، سنصلك قائمة بآخر المواضيع المضافة في المدونة تلقائيا إلى بريدك الالكتروني .












مرحبا ، اسمي محمد شاطر ، Mohammed chater , أعرف تحت مسمى Fez-Soft, طالب و مصمم و مطور تطبيقات ، من فاس المغرب . . يمكنك أن تتعرف علي اكثر من
و الله شيء جميل
اسمح لي أسألك أخي : هل درست تصميم المواقع في مدرسة خاصة أو مجهود شخصي ؟
لأنني أريد السير في نفس المجال لكن الأهل ينظرون للأمر باستخفاف (..) أظن أنني أطلت عليك :)
بالتوفيق أخي و سوف أحاول تطبيق المثال
اهلا ، شكرا لمرورك
بالنسبة لسؤالك ، مدرسة خاصة مع قليل من الاجتهاد الشخصي
بالنسبة لمن يستخف بالأمر ، فالأمر ليس كذلك لأنه وظيفة كثير من المطورين العالميين
بالتوفيق
السلام عليكم ورحمة الله وبركاته
جميل ياخي محمد, لكن ما عملته هو الآتي:
أنشات 3 ملفات ملف خاص بالــHTML وآخر بالــــ CSS والاخير خاص بـــ js لكن حين تطبيق المثال تفتح لي الصفحة مع وجود النص بشكل كامل والنافذه معا وعند المحاولة بالضغط على زر الاغلاق لا يعمل….. :(
أرجو التكرم بمساعدتي
وشكراً
أحمد : لا تنس ملف مكتبة jQuery
أصبحت 4 ملفات لكن للاسف مازالت النتيجة هي لم تتغير :)
اتبع الطريقة المشروحة في الدرس و سترى النتيجة ، لو لم توفق في ذلك ، يمكنك زيارة صفحة المثال و استخراج الأكواد منه
بالتوفيق احمد
صراحه درس في قمة الروعة
تسلم قلبي
السلام عليكم
اخى الغالى اولا مشكور على هذه المدونه الاكثر من رائعه وعلى مجهوداتك الاروع
ثانيا احب ان الفت انتباهك الى ان “بسم الله الرحمن الرحيم” تكتب كما كتبتها لك ولاكن لا تكتب هكذا “بسم الله الرحمان الرحيم” كما كتبتها انت
ارجو الانتباه وبالتوفيق لك
@يوسف: شكرا للتنبيه ، تم التصحيح
السلام عليكم و رحمة الله وبركاته
بارك الله فيك أستاذي الفاضل على هذا الشرح و الإضافة الجميلة .. لكن لدي إستسفار بسيط
ما هي طريقة إستخدام النافذة .. إذا أر دت أنت تظهر بهذا الشكل بشكل منبثق تلقائي بدون الحاجة للضغط على أيقونة أو نص معين …
بالضبط مثل رسائل التحذير الإفتراضية .. كما طرحته في هذا المقال
http://www.fez-soft.net/archives/80
يعني ظهرها بشكل منبثق تلقائيا و لكن عند توفر شرط معين .. توضيح
كود الأستدعاء مدموج بداخلها متغير القيمة التي ستظهر عن تحقق الشرط
و بارك الله فيك و زادك من فضله