公共底部
今天我们来完成公共底部,这是个非常重要的区域,并且也是非常省心的区域(基本写好了之后就是全局共用的)。
这里我们分两块区域,一是底部菜单,一是版权等信息,首先我们建立好DOM结构:
<footer>
<div class="footer-container">
<div class="footer-menus">
<?php
wp_nav_menu(
array(
'container' => 'nav',
'theme_location' => 'footer',
)
);
?>
</div>
<div class="footer-copyright">
<p>
Copyright ©<?php echo date_i18n(_x( 'Y', 'copyright date format'));?>
<a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php echo bloginfo( 'name' ); ?></a>
. All Rights Reserved.
</p>
<p>
<a href="<?php echo esc_url( __( 'https://wordpress.org/') ); ?>"><?php _e( 'Powered by WordPress'); ?></a>
•
<a href="#">Theme FreeGeek</a>
</p>
</div>
</div>
</footer>
这里需要注意wp_nav_menu里指定theme_location的位置为footer,这样会展示后台菜单设置里属于footer的菜单。
我们加上CSS描述,这里的CSS比较简单,就不贴出来了,直接看效果:
回到顶部
我们来做一个回到顶部的小按钮,增强页面体验:
<div class="scrolltop-wrap">
<a class="go-top" href="#common-top">
<span class="iconfont"></span>
</a>
</div>
这里我们把header的id设为common-top,这样点击这个锚链接的时候就会自动跳到首屏。
再让我们来看看CSS,这里利用postion:sticky巧妙地实现了这个按钮在首屏的隐藏:
/* go top button */
.scrolltop-wrap {
box-sizing: border-box;
position: absolute;
top: 10.2083vw;
right: 0.4167vw;
bottom: 0;
}
.go-top {
width: 2.6042vw;
height: 2.6042vw;
font-size: 1.6667vw;
text-decoration: none;
background: #DBB302;
border-radius: 100%;
color: white;
justify-content: center;
align-items: center;
display: flex;
cursor: pointer;
position: fixed;
position: -webkit-sticky;
position: sticky;
top: -5.2083vw;
transform: translateY(100vh);
overflow: hidden;
animation: slide-up-fade-in ease 0.5s;
animation-iteration-count: 1;
}
看,我们完全不需要JS也实现了,是不是非常优雅呢?
顶部菜单展开
还记得吗,我们在做顶部菜单,对于展开功能并没有实现,而只是临时屏蔽了相关的DOM,现在我们就来实现菜单的展开。
首先把.sub-menu元素的visibility:hidden去掉,这样我们的多级菜单就全跑出来了:
这样可不行,我们需要调整为鼠标在一级菜单悬停时展示出来,这里主要利用li:hover来实现,最终实现效果如图:
这里也是直接用CSS完成,难度不大,主要是涉及到下拉菜单的显示和隐藏控制,看一下关键部位的CSS:
.top-menus>nav>ul>li:hover>ul {
display: flex;
}
.top-menus>nav>ul>li>.sub-menu {
position: absolute;
left: 50%;
transform: translateX(-50%);
display: none;
flex-direction: column;
background: #2A2A2A;
z-index: 1;
overflow:hidden;
}
这里需要注意的是我们把菜单的z-index设为1,如果不设的话菜单可能会被同级元素遮挡。
这样我们的菜单展开部分也完成了。
小修复
也许你已经发现了,我们的侧边栏在主题自定义里看不到,会显示这样的字样:
这是怎么回事呢,其实我们少了wp_footer加载的官方js,但我们这是AMP主题呀,加载自定义js会破坏AMP格式,那怎么办呢?其实很简单:
<?php
if (is_customize_preview()) {
wp_footer();
}
?>
判断是否在主题预览里,如果是的话加载官方的wp_footer。
总结和预告
今天我们实现了公共底部,后期我们可以把这些公共组件统统抽离成独立的文件, 然后我们制作出了跳转到顶部的小按钮,还实现了顶部菜单的二级展开,顺便修复了一个小bug,有一定的难度,但只要细心研究,都可以解决。
明天我们将到达一个全新的领域——平板、手机适配,我们可以使用wordpress的自定义主题预览功能快速地看到我们调整后的效果,我们会运用媒体查询器控制页面元素,敬请期待吧。
如果你喜欢这个系列的文章,赶快关注我们(数字江湖异志录)吧,不要错过后续的更多干货噢。