
بسم الله الرحمن الرحيم
كيفية عمل قائمة منسدلة للموقع باستخدام Ext Core
وجدت شرح مميز فى إحدى المدونات (للأسف توقف عملها :)) ) وأضفت له بعض التعديلات وربنا يستر.
هناك العديد من مكتبات تطوير بنية الصفحات باستخدام Javascript و من أشهرها مكتبة jQuery و التي يكثر استخدامها الآن في العديد من المواقع الكبرى و يمكن تطويعها لعمل العديد من التأثيرات الرائعة و أيضاً مكتبة Mootools و Prototype و غيرها . و لكننا اليوم على موعد مع مجموعة جديدة ظهرت حديثاً للنور و هي مكتبة Ext Core .
وتتمتع مكتبة Ext Core بسهولة الاستخدام و السرعة التي تظهر في أدائها , و سنسعترض في هذا المقال كيفية عمل قائمة منسدلة سواء عرضية أو طولية مع مساعدة CSS في تطوير الشكل .
هناك العديد من الأمثلة المتوفرة لعمل قائمة منسدلة باستخدام CSS فقط و التحكم فيها من خلال عدة عناصر مثل Position و z-index للتحكم في مكان الظهور و كيفية الاخفاء , و لكن أحياناً ما نحتاج لبعض التأثير الجمالي على القائمة التي نستخدمها . القائمة التي لدينا اليوم بسيطة و سهلة و التعديل فيها أيضاً بسيط سواء في كود HTML أو في CSS .
كيفية إدراج مكتبة Ext Core في الصفحة :-
هناك الطريقة التقليدية و هي تنزيل ملف Ext Core على موقعك و إضافته من خلال عنصر Script إلى وسم < head > , و لكن من الأفضل لسرعة أداء موقعك جلب مكتبات تطوير بنية الصفحات Ajax Libraries API من خلال Google فهي تساهم في سرعة الصفحة الخاصة بك و توفير مساحة من عملية تحميل الملف كل مرة من خلال موقعك :
كود PHP:
	
	
<script src="http://ajax.googleapis.com/ajax/libs/ext-core/3.0.0/ext-core-debug.js" type="text/javascript"></script> 
إضافة الملفات اللازمة لتشغيل القائمة:-
يجب إضافة مجموعة الملفات اللازمة لتشغيل القائمة سواء ملفات الجافاسكربت أو ملفات CSS و يتم إضافتها داخل وسم وسم <head> :
كود:
	
	[LEFT]<link href="menu.css" rel="stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/ext-core/3.0.0/ext-core-debug.js" type="text/javascript"></script>
<script src="menu.js" type="text/javascript"></script>
<script type="text/javascript">
            Ext.onReady(function() {
                new Ext.ux.Menu('simple-horizontal-menu', {
                    transitionType: 'slide',
                    direction: 'horizontal', // default
                    delay: 0.2,              // default
                    autoWidth: true,         // default
                    transitionDuration: 0.3, // default
                    animate: true,           // default
                    currentClass: 'current'  // default
                });
                new Ext.ux.Menu('simple-vertical-menu', {
                    direction: 'vertical'
                });
            });
        </script>[/LEFT]
إضافة القائمة في الصفحة:-
لاستخدام القائمة في الصفحة ما عليك إلا اختيار إذا كنت ستستخدم القائمة الطولية أو العرضية
القائمة العرضية:-
و يكون كود HTML للقائمة العرضية كالتالي :
كود:
	
	[LEFT]<ul id="simple-horizontal-menu">
    <li><a href="#">عنصر قائمة رئيسية 1</a></li>
    <li><a href="#">عنصر قائمة رئيسية 2</a></li>
    <li><a href="#">عنصر قائمة رئيسية 3</a>
    <ul>
        <li><a href="#">عنصر قائمة داخلية 1</a></li>
        <li><a href="#">عنصر قائمة داخلية 2</a></li>
        <li><a href="#">عنصر قائمة داخلية 3</a></li>
    </ul>
    </li>
    <li><a href="#">عنصر قائمة رئيسية 4</a>
        <ul>
        <li><a href="#">عنصر قائمة داخلية 4</a></li>
        <li><a href="#">عنصر قائمة داخلية 5</a>
        <ul>
            <li><a href="#">عنصر قائمة داخلية 1</a></li>
            <li><a href="#">عنصر قائمة داخلية 2</a></li>
            <li><a href="#">عنصر قائمة داخلية 3</a></li>
        </ul>
        </li>
        <li><a href="#">عنصر قائمة داخلية 6</a></li>
    </ul>
    </li>
</ul>[/LEFT]
كود:
	
	[LEFT]        <li><a href="#">عنصر قائمة داخلية 5</a>
        <ul>
            <li><a href="#">عنصر قائمة داخلية 1</a></li>
            <li><a href="#">عنصر قائمة داخلية 2</a></li>
            <li><a href="#">عنصر قائمة داخلية 3</a></li>
        </ul>
        </li>
[/LEFT]
كود:
	
	[LEFT]<ul id="simple-vertical-menu">
    <li><a href="#">تجربة</a>
    <ul>
        <li><a href="#">عنصر قائمة داخلية 1</a></li>
        <li><a href="#">عنصر قائمة داخلية 2</a>
        <ul>
            <li><a href="#">sub عنصر قائمة داخلية 1</a></li>
            <li><a href="#">sub عنصر قائمة داخلية 2</a></li>
            <li><a href="#">sub عنصر قائمة داخلية 3</a></li>
        </ul>
        </li>
        <li><a href="#">عنصر قائمة داخلية 3</a></li>
    </ul>
    </li>
    <li><a href="#">عنصر قائمة رئيسية 2</a></li>
    <li><a href="#">عنصر قائمة رئيسية 3</a>
    <ul>
        <li><a href="#">عنصر قائمة داخلية 4</a></li>
        <li><a href="#">عنصر قائمة داخلية 5</a></li>
        <li><a href="#">عنصر قائمة داخلية 6</a></li>
    </ul>
    </li>
    <li><a href="#">عنصر قائمة رئيسية 4</a></li>
</ul>[/LEFT]
ملف التنسيق CSS :-
أما التنسيق باستخدام CSS فهو مثل التنسيق لأي قائمة أخرى يتم عملها باستخدام HTML من خلال التحكم بتنسيق عناصر ul, li, a و التي تعرض القائمة في HTML
كود:
	
	[LEFT]body{
direction: rtl;
}
.ux-menu-container {
    position: relative;
}
.ux-menu,
.ux-menu ul {
    list-style-image: none;
    list-style-position: outside;
    list-style-type: none;
    margin: 0;
    padding: 0;
    line-height: 1;
}
.ux-menu li {
    position: relative;
    float: right;
}
.ux-menu ul {
    position: absolute;
    top: 0;
    left: 0;
}
.ext-border-box .ux-menu-ie-iframe,
.ext-ie7 .ux-menu-ie-iframe {
    padding: 0;
    margin: 0;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    zoom: 1;
    z-index: -1;
    filter:mask();
}
.ux-menu-vertical .ux-menu-item-main {
    clear: left;
}
.ux-menu a {
    display: block;
    position: relative;
    text-decoration: none;
    color: #432;
    border-left: 1px solid #e3dad1;
    border-top: 1px solid #e3dad1;
    border-bottom: 1px solid #e3dad1;    
    background: #f3efec url('images/menu-item-bg.png') repeat;
    font-size: 12px;
    line-height: 12px;
    padding: 10px 14px;
}
.ux-menu a.ux-menu-link-last {
    border-right: 1px solid #e3dad1;
}
ux.menu ul a {
    width: 100%;
}
.ux-menu a:focus,
.ux-menu a:hover,
.ux-menu a.ux-menu-link-hover {
    border-color: #d2e3f4;
    background: url(images/'menu-item-bg-over.png') repeat;
    outline: 0;
}
.ext-ie .ux-menu-clearfix {
    zoom: 1;
}
.ux-menu-clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
.ux-menu a.ux-menu-link-parent {
    padding-right: 24px;
    min-width: 1px;
}
.ux-menu ul a,
.ux-menu.ux-menu-vertical a {
    border-bottom: 0px;    
    border-right: 1px solid #e3dad1;
}
.ux-menu ul a.ux-menu-link-last,
.ux-menu.ux-menu-vertical a.ux-menu-link-last {
    border-bottom: 1px solid #e3dad1;
}
.ux-menu-arrow {
    display: block;
    width: 8px;
    height: 6px;
    right: 10px;
    top: 14px;
    position: absolute;
    background: url('images/menu-arrow-down.png') no-repeat;
    font-size: 0;
}
.ux-menu.ux-menu-vertical .ux-menu-arrow,
.ux-menu ul .ux-menu-arrow  {
    width: 6px;
    height: 8px;
    top: 13px; 
    background: url('images/menu-arrow-right.png') no-repeat;
}
.ext-border-box .ux-menu-arrow {
    top: 17px;
}
.ext-border-box .ux-menu.ux-menu-vertical .ux-menu-arrow,
.ext-border-box .ux-menu ul .ux-menu-arrow {
    top: 16px;
}
.ux-menu ul.ux-menu-hidden {
    display: none;
}[/LEFT]



							
						
							
						


تعليق