在 javascript 个页面上使用 CSS 淡入淡出
Fade in and out using CSS on javascript multiple pages
在我的网站上,我有两个链接,如果您点击作品集,div 作品集就会可见。
我用这段代码在它们之间切换<a href="" onclick="return show('portfolio','profile');">
如何使用 CSS 在 div 之间快速淡入淡出?
访问我的网站 here,您就会看到。
您将不可见的 div 设置为显示:none。因此,标准 CSS 转换无法开箱即用。
display: none 是个好主意,因为浏览器根本不会花时间呈现该标记。但是,CSS 转换需要 hack 才能处理从显示:none 移动到显示:!none 的元素,因此您有两个选择:
1) 只需使用 CSS 动画代替; add/remove 一个 class 到包含 CSS 动画定义的元素,它将立即播放。
2) 将不可见的 div 设置为高度:0 和不透明度:0;并过渡到不透明度:1 使用常规 CSS 过渡(通常由 class 更改触发)
我创建了一个小演示供您查看并了解 AlexG 在选项 1 中使用 CSS 动画(和 jQuery)的建议。
代码片段:
var vHome = $("#home"),
vPortfolio = $("#portfolio"),
bTriggerHome = $("#trigger-home"),
bTriggerPortfolio = $("#trigger-portfolio");
function switchView() {
vHome.add(vPortfolio).toggleClass("hide-view");
};
bTriggerHome.add(bTriggerPortfolio).on("click", function() {
switchView();
});
#home,
#portfolio {
height: 500px;
animation: fadeInUp 1s both;
}
#home {
background-color: tomato;
}
#portfolio {
background-color: royalblue;
}
.hide-view {
display: none;
}
@keyframes fadeInUp {
0% {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0)
}
100% {
opacity: 1;
-webkit-transform: none;
transform: none
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="home">
<button id="trigger-portfolio">
Switch View
</button>
</div>
<div id="portfolio" class="hide-view">
<button id="trigger-home">
Switch View
</button>
</div>
在我的网站上,我有两个链接,如果您点击作品集,div 作品集就会可见。
我用这段代码在它们之间切换<a href="" onclick="return show('portfolio','profile');">
如何使用 CSS 在 div 之间快速淡入淡出? 访问我的网站 here,您就会看到。
您将不可见的 div 设置为显示:none。因此,标准 CSS 转换无法开箱即用。
display: none 是个好主意,因为浏览器根本不会花时间呈现该标记。但是,CSS 转换需要 hack 才能处理从显示:none 移动到显示:!none 的元素,因此您有两个选择:
1) 只需使用 CSS 动画代替; add/remove 一个 class 到包含 CSS 动画定义的元素,它将立即播放。
2) 将不可见的 div 设置为高度:0 和不透明度:0;并过渡到不透明度:1 使用常规 CSS 过渡(通常由 class 更改触发)
我创建了一个小演示供您查看并了解 AlexG 在选项 1 中使用 CSS 动画(和 jQuery)的建议。
代码片段:
var vHome = $("#home"),
vPortfolio = $("#portfolio"),
bTriggerHome = $("#trigger-home"),
bTriggerPortfolio = $("#trigger-portfolio");
function switchView() {
vHome.add(vPortfolio).toggleClass("hide-view");
};
bTriggerHome.add(bTriggerPortfolio).on("click", function() {
switchView();
});
#home,
#portfolio {
height: 500px;
animation: fadeInUp 1s both;
}
#home {
background-color: tomato;
}
#portfolio {
background-color: royalblue;
}
.hide-view {
display: none;
}
@keyframes fadeInUp {
0% {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0)
}
100% {
opacity: 1;
-webkit-transform: none;
transform: none
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="home">
<button id="trigger-portfolio">
Switch View
</button>
</div>
<div id="portfolio" class="hide-view">
<button id="trigger-home">
Switch View
</button>
</div>