This website requires JavaScript to deliver the best possible experience.
استخدام HTML و CSS فقط لبناء شريط جانبي متحرك

استخدام HTML و CSS فقط لبناء شريط جانبي متحرك

سنقوم ببناء قائمة تنقل حديثة عبر الشريط الجانبي يمكن استخدامها كصفحة مقصودة أو صفحة الملف الشخصي، أو ربما مجرد مصدر إلهام لأفكار أكثر تفردًا.

إليك ما سنقوم ببناؤه:

هيكلة HTML

أولاً: سنكتب HTML لشريط التنقل الجانبي كقائمة غير مرتبة، مع قائمة ملتفة لكل عنصر من عناصر القائمة في ارتباط تشعبي hyperlink.

<ul>
 <a href=#t1>
   <li class="icon fa fa-home" id="i1"></li>
 </a>
 <a href=#t2>
   <li class="icon fa fa-keyboard-o" id="i2"></li>
 </a>
 <a href=#t3>
   <li class="icon fa fa-coffee" id="i3"></li>
 </a>
 <a href=#t4>
   <li class="icon fa fa-bed" id="i4"></li>
 </a>
</ul>

بعد ذلك، سنكتب الترميز للصفحات، مع التفاف كل صفحة بعلامة <div>.

<div class="page" id="p1">
 <li class="icon fa fa-home">
   <span class="title">Home</span>
 </li>
</div>

<div class="page" id="p2">
 <li class="icon fa fa-keyboard-o">
   <span class="title">Type</span>
 </li>
</div>

<div class="page" id="p3">
 <li class="icon fa fa-coffee">
   <span class="title">Coffee</span>
 </li>
</div>

<div class="page" id="p4">
 <li class="icon fa fa-bed">
   <span class="title">Sleep</span>
 </li>
</div>

بعد ذلك سنقوم بلف كل من الشريط الجانبي والصفحات الموجودة في قسم، ونقوم بلفها في حاوية <div> و تلك الحاوية في حاوية أخرى ، بحيث تتداخل علامات <div> داخل بعضها البعض.

<div class="container" id="t1">
 <div class="container" id="t2">
   <div class="container" id="t3">
     <div class="container" id="t4">
       <section>
         <ul>
           <a href="#t1">
             <li class="icon fa fa-home" id="i1"></li>
           </a>
           <a href="#t2">
             <li class="icon fa fa-keyboard-o" id="i2"></li>
           </a>
           <a href="#t3">
             <li class="icon fa fa-coffee" id="i3"></li>
           </a>
           <a href="#t4">
             <li class="icon fa fa-bed" id="i4"></li>
           </a>
         </ul>
         <div class="page" id="p1">
           <li class="icon fa fa-home">
             <span class="title">Home</span>
           </li>
         </div>
         <div class="page" id="p2">
           <li class="icon fa fa-keyboard-o">
             <span class="title">Type</span>
           </li>
         </div>
         <div class="page" id="p3">
           <li class="icon fa fa-coffee">
             <span class="title">Coffee</span>
           </li>
         </div>
         <div class="page" id="p4">
           <li class="icon fa fa-bed">
             <span class="title">Sleep</span>
           </li>
         </div>
       </section>
     </div>
   </div>
 </div>
</div>

نصنع الإعداد الأساسي لصفحاتنا، ونخفي overflow ونضيف تأثير الانتقال أيضًا.

تصميم الصفحات

html,
body,
section,
.page {
 width: 100%;
 height: 100%;
 margin: 0;
 padding: 0;
 transition: all 1s cubic-bezier(0.5, -0.005, 0.2, 1) !important;
 -webkit-transition: all 1s cubic-bezier(0.5, -0.005, 0.2, 1) !important;
 color: #fff;
 background: #374046;
 overflow: hidden;
}

الآن، نحن بحاجة إلى ضبط العرض للقسم لجعل الصفحات ملفوفة حتى 400٪. وتتمثل الخدعة هنا في تعيين الخاصية اليسرى لكل صفحة ك ¼ من القسم.

لا تنس أيضًا تعيين موضع فئة الصفحة إلي absolute:
section {
 width: 400%;
}

.page {
 position: absolute;
}

#p1 {
 left: 0;
}
#p2 {
 left: 100%;
 background: #ff5722;
}
#p3 {
 left: 200%;
 background: #593c1f;
}
#p4 {
 left: 300%;
 background: #593c56;
}

بإستخدام خاصية التحويل، يمكننا تمرير كل صفحة إلى اليسار عن طريق ترجمتها على المحور X في الاتجاه السلبي:

#t1: target .page#p1 {
 transform: translateX(0);
}
#t2: target .page#p2 {
 transform: translateX(-90%);
}
#t3: target .page#p3 {
 transform: translateX(-190%);
}
#t4: target .page#p4 {
 transform: translateX(-290%);
}

نضيف فلتر blur إلى أيقونة الصفحة لإضافة تأثير التشتيت:

#t2: target .page#p1 .icon,
#t3: target .page#p1 .icon,
#t4: target .page#p1 .icon {
 filter: blur(3px);
 -webkit-filter: blur(3px);
}

تصميم قائمة الشريط الجانبي

الآن قمنا بتعيين موضع القائمة ليتم إصلاحه ، وقم بتعيين ارتفاعه وعرضه ومحاذاة محتوى النص الخاص به.

ونقوم أيضًا بإزالة زخارف النص من الارتباطات التشعبية وتعيين الهامش بين كل عنصر قائمة:

ul {
 position: fixed;
 top: 0;
 bottom: 0;
 left: 0;
 margin: auto;
 height: 280px;
 width: 10%;
 padding: 0;
 text-align: center;
}

ul li {
 margin: 30px 0;
}

a {
 text-decoration: none;
 font-family: sans-serif;
}

لنعرض الأيقونات فوق بعضها البعض، قمنا بتعيين خاصية العرض إلي block ، كما أنه يمكننا ضبط حجمها.

.icon {
 color: #fff;
 font-size: 32px;
 display: block;
}

لا تنسَ إضافة هذا تأثير hover!

ul .icon:hover {
 opacity: 0.6;
}

ولماذا لا تضيف بعض التحجيم؟

transform: scale(0.6);
transition-delay: 0.25s;
والآن لديك، عنصر تنقل أنيق يمكن أن يخدم العديد من الأغراض.للحصول على المصدر الكامل من البرمجة، تحقق من الريبو من خلال غيت هب الخاص بنا. 

التعليقات

المزيد من المقالات