我正在开发一个单页 WordPress 网站,我需要在第一部分 (#home) 上隐藏页面的徽标 (#logo)。整个页面是单页的,所以第一部分不需要标志,实际上它应该只出现在第一个下面的其他部分。
这可以使用CSS来完成吗?
如果是,那么我还想更改第一部分的菜单元素的颜色,并为其他部分设置其他颜色。
我正在开发一个单页 WordPress 网站,我需要在第一部分 (#home) 上隐藏页面的徽标 (#logo)。整个页面是单页的,所以第一部分不需要标志,实际上它应该只出现在第一个下面的其他部分。
这可以使用CSS来完成吗?
如果是,那么我还想更改第一部分的菜单元素的颜色,并为其他部分设置其他颜色。
简短的回答:没有。
您将需要编写一些 JavaScript 或 jQuery 来确定第一部分(即主页部分)何时不再在视图窗口中。
徽标通常位于<header>
. 它是 HTML 标记中的一个元素。它与部分没有关系。使用样式,您可以将其放置在您想要的位置,然后滚动文档以查看其余的内容部分。
我假设这是一个单页纸,您希望<header>
修复它。这是一个很好的假设,因为您希望在除第一个部分之外的每个部分的同一位置显示徽标。
有很多方法可以完成这种行为。本质上,您需要确定主页部分是否在浏览器窗口中。如果是,则隐藏徽标;否则,它会显示出来。
一种策略是:
这里有一些代码可以帮助您入门。您需要根据您的特定需求对其进行调整。
(function ( $, window, document ) {
"use strict";
var sectionContainers,
showPosition = 400;
var init = function () {
initSection();
logoHandler();
}
function initSection() {
sectionContainers = $( '.section-container' );
showPosition = $( sectionContainers[1] ).offset().top;
}
function logoHandler() {
var $logo = $( '#logo' );
if ( $( sectionContainers[0] ).offset().top >= showPosition ) {
$logo.show();
}
$( window ).scroll( function () {
if ( $( this ).scrollTop() > showPosition ) {
$logo.show();
} else {
$logo.hide();
}
} );
}
$( document ).ready( function () {
init();
} );
}( jQuery, window, document ));
body {
color: #fff;
}
.site-header {
position: fixed;
}
.site-logo {
font-weight: bold;
border: 5px solid #fff;
padding: 10px;
}
.section-container {
width: 100%;
height: 400px;
text-align: center;
padding: 50px 5%;
background-color: #627f00;
}
.section-container:nth-child(odd) {
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header class="site-header" itemscope itemtype="http://schema.org/WPHeader">
<p id="logo" class="site-logo" itemprop="headline" style="display: none;">Logo</p>
</header>
<section id="home" class="section-container">
this is the home section
</section>
<section id="about" class="section-container">
this is the about section
</section>
<section id="about" class="section-container">
this is the portfolio section
</section>