jquery - 防止 jquery 在 fadeOut() 之后重置背景图像

标签 jquery html css web

我正在用 jquery 做一些 fadeIn 和 fadeOut。最后的淡入淡出(fadeOut())淡出整个css表格,转到css body背景图片。我已将背景位置设置为居中。 Jquery 在动画完成后将图像重置到左下角的位置。我正在寻找防止这种情况并将背景图像保持为中心。

我尝试将所有内容都放在图形包装器中而不是正文中,这就是 <figure> 的原因标签。当我尝试这样做时,动画结束后屏幕完全变白。

HTML & jquery:

<html>
<head lang="en">
    <link type="text/css" rel="stylesheet" href="site.css" media="screen">
    <script type="text/javascript" src="jquery.js"></script>
    <meta charset="UTF-8">
    <script>
        $(document).ready(function() {
            $(".firstFade").fadeIn(5000).delay(10000).fadeOut(7000);
            $(".secondFade").delay(6000).fadeIn(5000).delay(3000).fadeOut(1000);
            $("#tableCell5Text").delay(14500).fadeOut(1000);
            $(".container").delay(15000).fadeOut(7000);
        });
    </script>
</head>
<body>
    <figure id="pathImg">
        <div class="container" id="table">
            <div class="container containerRow" id="tableRow">
                <div class="container containerCell" id="tableCell">
                    <img src="images/img1.jpg" alt="" width="150" height="150" class="hidden firstFade" id="img1">
                </div>
            </div>
            <div class="container containerRow" id="tableRow2">
                <div class="container containerCell" id="tableCell2">
                    <img src="images/img2.png" alt="" height="85" width="77" class="hidden firstFade" id="img2">
                </div>
            </div>
            <div class="container containerRow" id="tableRow3">
                <div class="container containerCell" id="tableCell3">
                    <p class="hidden firstFade" id="tableCell3Text">some text</p>
                </div>
            </div>
            <div class="container containerRow" id="tableRow4">
                <div class="container containerCell" id="tableCell4">
                    <h2 class="hidden secondFade" id="tableCell4Text">some text</h2>
                </div>
            </div>
            <div class="container containerRow" id="containerRow5">
                <div class="container containerCell" id="containerCell5">
                    <h1 id="tableCell5Text">some text</h1>
                </div>
            </div>
    </div>
    </figure>
</body>

CSS:

* {
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
  padding: 0;
}

#pathImg {
  margin: 0;
  padding: 0;
  background-image: url(images/sunnySkies.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

.hidden {
  display: none;
}

#table {
  display: table;
  height: 100vh;
  width: 100vw;
  text-align: center;
  background-color: #ffffff;
}

.containerRow {
  display: table-row;
}

.containerCell {
  display: table-cell;
}

#tableCell {
  height: 20vh;
}

#tableCell2 {
  height:   15vh;
  vertical-align: middle;
}

#tableCell3 {
  height: 10vh;
  vertical-align: top;
}

#tableCell4 {
  height: 5vh;
  vertical-align: top;
}

#tableCell3Text {
  font-family: 'Tangerine', cursive;
  font-size: 300%;
  color: #444444;
}

#tableCell4Text {
  font-family: arial;
  color: #444444;
}

#tableCell5Text {
  font-family: arial;
  color: #444444;
}

#img1 {
  margin: 5vh 0 0 0;
  padding: 5px;
  border: 2px solid #444444;
  border-radius: 5px;
  background-color: gray;
}

最佳答案

实际上,在没有数字的情况下,它对我来说似乎工作正常。但是,如果您使用的是图形,那么问题是您正在淡化 .container 将其设置为 display:none ,这将消除所有高度。你需要在页面上留下一些东西,这样一切都不会崩溃。最后, body 没有高度,这就是你得到白屏的原因。所以我们要做的是获取最大图像的高度,并将 body 设置为淡出前的高度。

将你的 JQuery 改成这个

 $(".firstFade").fadeIn(5000).delay(10000).fadeOut(7000);
 $(".secondFade").delay(6000).fadeIn(5000).delay(3000).fadeOut(1000);
 $("#tableCell5Text").delay(14500).fadeOut(1000);
 var $height = $("#table").height();
 $("body").height($height);
 $(".container").delay(15000).fadeOut(7000);

关于jquery - 防止 jquery 在 fadeOut() 之后重置背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43080534/

相关文章:

javascript - 在没有某些 div 的情况下淡入背景

html - 如何将嵌套 <ul> 正确定位在水平滚动 <ul> 上方作为 "pop-up"菜单? Chrome 和 IE 的问题

html - 具有相对高度的父div中具有相对高度的子div

css - 边距在 Firefox 和 Safari 中看起来不错,但在 IE 中要宽得多

jquery - 无法将 Jquery 垂直 slider 的大小保持在与其旁边的图片相同的高度

javascript - 使用类型化的 javascript/jquery 库使光标与文本大小相同

javascript - 页面清除 - JQuery Mobile

php - 多行自动计算和复选框?如何减少呢?

javascript - 仅向搜索引擎访问者展示 Google AdSense 广告

ASP.NET MVC 要求我重新验证 PNG 文件而不是 GIF 或 JPEG