سنقوم ببناء قائمة تنقل حديثة عبر الشريط الجانبي يمكن استخدامها كصفحة مقصودة أو صفحة الملف الشخصي، أو ربما مجرد مصدر إلهام لأفكار أكثر تفردًا.
أولاً: سنكتب 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٪. وتتمثل الخدعة هنا في تعيين الخاصية اليسرى لكل صفحة ك ¼ من القسم.
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;