我正在尝试创建一个非常简单的 css 幻灯片,但我一直遇到无法弄清楚的问题。有两个图像应该作为自动幻灯片旋转。由于某种原因没有发生任何事情,幻灯片应该显示的地方只是呈现白色
/*
Layout -------------------------
*/
.ou-wrapper table {
table-layout: fixed;
}
.ou-wrapper td {
word-wrap: break-word;
}
.ou-body {
margin-bottom: 50px;
max-width: 554;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
}
.row {
display: flex;
justify-content: center;
align-items: center;
}
.tabletextcolhead {
color: #FFFFFF;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
margin: 10px 0px;
font-size: 20px;
}
p {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 16px;
line-height: 20px;
}
li {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 16px;
line-height: 20px;
}
input {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 11px;
line-height: 14px;
}
select {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 11px;
line-height: 14px;
}
.slideshow im {
}
.ou-title h1 {
font-weight: bold;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
/* font-size: 14px; */
line-height: 14px;
color: #E3414F;
margin-bottom: 0px;
}
.ou-title h2 {
font-weight: bold;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
font-size: 13px;
line-height: 14px;
color: #E3414F;
margin-bottom: 0px;
}
.ou-title {
margin: 10px 15px;
display: flex;
flex-direction: column;
align-items: center;
}
.ou-message {
margin: 10px 15px 25px 15px;
}
.ou-message p {
font-family: 'Open Sans Condensed', sans-serif, 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
font-size: 12px;
line-height: 14px;
}
.ou-register {
border-radius: 3px;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
background: #FFFFFF;
color: #E3414F;
font-size: 14px !important;
padding: 10px 25px 10px 25px;
border: solid #E3414F 2px;
text-decoration: none;
text-transform: uppercase;
}
.ou-register:hover {
background: #E3414F;
color: #FFFFFF;;
border: solid #E3414F 2px;
border-radius: 3px;
text-decoration: none;
text-transform: uppercase;
}
.ou-support ul {
list-style-type: none;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 10px;
line-height: 14px;
padding-left: 0px;
}
.ou-support ul li {
font-size: 16px;
line-height: 20px;
}
.slideshow {
position: relative;
height: 300px;
outline: 1px solid black;
overflow: hidden;
}
.slideshow img {
position: absolute;
opacity: 0;
top: -9999px;
bottom: -9999px;
left: -9999px;
right: -9999px;
margin: auto;
animation-name: fade;
animation-duration: 50s;
animation-iteration-count: infinite;
width: 100%;
height:auo
}
.slideshow img:nth-child(1) {
animation-delay: 0s;
}
.slideshow img:nth-child(2) {
animation-delay: 5s;
}
* {
box-sizing: border-box;
}
Slideshow -------------------------
*/
.slideshow {
position: relative;
display: table;
text-align: center;
vertical-align: middle;
width: 554px;
height: 370px;
overflow: hidden;
box-shadow: 0px 0px 2px 5px #333;
}
.slide {
position: absolute;
display: table-cell;
text-align: center;
vertical-align: middle;
top: 0;
right: 0;
bottom: 0;
left: 0;
/* duration = h */
-webkit-animation: slide 20s infinite;
animation: slide 20s infinite;
/* slide animation */
/* transform: translateX(100%); */
/* fade animation */
opacity: 0;
overflow: hidden;
}
.slide img {
position: absolute;
top: 50%;
right: 0;
bottom: 0;
left: 50%;
max-width: 554px;
min-height: 370px;
height: auto;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
-o-object-fit: cover;
object-fit: cover;
}
/*
Slideshow calculations:
----------------------
n = number of images
t = transition time
s = stay time
d = delay time
T = total time
S = show start %
h = hide start %
D = delay start %
a = animation delay
d = (n - 1)(t + s) - t
T = n(t + s)
S = (t/T) x 100%
h = 100/n%
D = S + h
a = (i - 1)(t + s)
5 images:
---------
n = 5
t = 1s
s = 3s
d = delay time
T = total time
S = show start %
h = hide start %
D = delay start %
i = slide number
d = (5 - 1)(2 + 3) - 1 = 19s
T = 5(1 + 3) = 20s
S = (1/20) x 100% = 5%
h = 100/5% = 20%
D = 5 + 20 = 25%
*/
@-webkit-keyframes slide {
0% {
/* slide animation: */
/* -webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%); */
/* fade animation: */
opacity: 0;
}
/* S */
5%,
/* h */
20% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
/* D */
25%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%); */
/* fade animation: */
opacity: 0;
}
}
@keyframes slide {
0% {
/* slide animation: */
/* -webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%); */
/* fade animation: */
opacity: 0;
}
/* S */
5%,
/* h */
20% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
/* D */
25%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%); */
/* fade animation: */
opacity: 0;
}
}
.slide:nth-child(1) {
/*i = 1*/
/*animation-delay: 0s;*/
/*(i - 1)(t + s) = 0s*/
/*slide T infinite, first-slide t*/
-webkit-animation: slide 20s infinite, first-slide 1s;
animation: slide 20s infinite, first-slide 1s;
}
@-webkit-keyframes first-slide {
0%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
}
@keyframes first-slide {
0%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
}
.slide:nth-child(2) {
/*
i = 2
(i - 1)(t + s) = (1)(4s)
*/
-webkit-animation-delay: 4s;
animation-delay: 4s;
}
.slide:nth-child(3) {
/*
i = 3
(i - 1)(t + s) = (2)(4s)
*/
-webkit-animation-delay: 8s;
animation-delay: 8s;
}
.slide:nth-child(4) {
/*
i = 4
(i - 1)(t + s) = (3)(4s)
*/
-webkit-animation-delay: 12s;
animation-delay: 12s;
}
.slide:nth-child(5) {
/*
i = 3
(i - 1)(t + s) = (4)(4s)
*/
-webkit-animation-delay: 16s;
animation-delay: 16s;
}
<td width="554" bgcolor="#FFFFFF" valign="top">
<div align="left">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="554">
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<tr>
<td width="20"> </td>
<div class="ou-body">
<div class="slideshow">
<img src="https://i.imgur.com/XAmj47u.png.PNG" />
<img src="https://i.imgur.com/ZtVOJyD.png" />
</div>
</table
<!--Title-->
<div class="ou-title">
<h1>
Welcome To Tesla Online Safety Training
</h1>
<hr />
</div>
<div style="margin: 10px 15px 25px 15px">
。我什至可以右键单击幻灯片应该显示的位置,然后下载或打开应该渲染的图像。我在这里不知所措。
答案 0 :(得分:0)
只需将 from flask import abort
try:
userID = int(request.form.get("userID"))
[...]
except:
db.rollback()
abort(500)
重命名为 fade
即可匹配关键帧。
slide
成为;
.slideshow img {
position: absolute;
opacity: 0;
top: -9999px;
bottom: -9999px;
left: -9999px;
right: -9999px;
margin: auto;
animation-name: fade; /** this is incorrect**/
animation-duration: 50s;
animation-iteration-count: infinite;
width: 100%;
height:auo
}
你可以在这里看到结果;
.slideshow img {
position: absolute;
opacity: 0;
top: -9999px;
bottom: -9999px;
left: -9999px;
right: -9999px;
margin: auto;
animation-name: slide; /** this now matches your keyframe **/
animation-duration: 50s;
animation-iteration-count: infinite;
width: 100%;
height:auo
}
/*
Layout -------------------------
*/
.ou-wrapper table {
table-layout: fixed;
}
.ou-wrapper td {
word-wrap: break-word;
}
.ou-body {
margin-bottom: 50px;
max-width: 554;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
}
.row {
display: flex;
justify-content: center;
align-items: center;
}
.tabletextcolhead {
color: #FFFFFF;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
margin: 10px 0px;
font-size: 20px;
}
p {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 16px;
line-height: 20px;
}
li {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 16px;
line-height: 20px;
}
input {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 11px;
line-height: 14px;
}
select {
font-weight: normal;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 11px;
line-height: 14px;
}
.slideshow im {
}
.ou-title h1 {
font-weight: bold;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
/* font-size: 14px; */
line-height: 14px;
color: #E3414F;
margin-bottom: 0px;
}
.ou-title h2 {
font-weight: bold;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
font-size: 13px;
line-height: 14px;
color: #E3414F;
margin-bottom: 0px;
}
.ou-title {
margin: 10px 15px;
display: flex;
flex-direction: column;
align-items: center;
}
.ou-message {
margin: 10px 15px 25px 15px;
}
.ou-message p {
font-family: 'Open Sans Condensed', sans-serif, 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
font-size: 12px;
line-height: 14px;
}
.ou-register {
border-radius: 3px;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
background: #FFFFFF;
color: #E3414F;
font-size: 14px !important;
padding: 10px 25px 10px 25px;
border: solid #E3414F 2px;
text-decoration: none;
text-transform: uppercase;
}
.ou-register:hover {
background: #E3414F;
color: #FFFFFF;;
border: solid #E3414F 2px;
border-radius: 3px;
text-decoration: none;
text-transform: uppercase;
}
.ou-support ul {
list-style-type: none;
font-family: 'Open Sans Condensed', sans-serif, 'Oswald', sans-serif, Arial, Verdana;
color: #000000;
font-size: 10px;
line-height: 14px;
padding-left: 0px;
}
.ou-support ul li {
font-size: 16px;
line-height: 20px;
}
.slideshow {
position: relative;
height: 300px;
outline: 1px solid black;
overflow: hidden;
}
.slideshow img {
position: absolute;
opacity: 0;
top: -9999px;
bottom: -9999px;
left: -9999px;
right: -9999px;
margin: auto;
animation-name: slide;
animation-duration: 50s;
animation-iteration-count: infinite;
width: 100%;
height:auo
}
.slideshow img:nth-child(1) {
animation-delay: 0s;
}
.slideshow img:nth-child(2) {
animation-delay: 5s;
}
* {
box-sizing: border-box;
}
Slideshow -------------------------
*/
.slideshow {
position: relative;
display: table;
text-align: center;
vertical-align: middle;
width: 554px;
height: 370px;
overflow: hidden;
box-shadow: 0px 0px 2px 5px #333;
}
.slide {
position: absolute;
display: table-cell;
text-align: center;
vertical-align: middle;
top: 0;
right: 0;
bottom: 0;
left: 0;
/* duration = h */
-webkit-animation: slide 20s infinite;
animation: slide 20s infinite;
/* slide animation */
/* transform: translateX(100%); */
/* fade animation */
opacity: 0;
overflow: hidden;
}
.slide img {
position: absolute;
top: 50%;
right: 0;
bottom: 0;
left: 50%;
max-width: 554px;
min-height: 370px;
height: auto;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
-o-object-fit: cover;
object-fit: cover;
}
/*
Slideshow calculations:
----------------------
n = number of images
t = transition time
s = stay time
d = delay time
T = total time
S = show start %
h = hide start %
D = delay start %
a = animation delay
d = (n - 1)(t + s) - t
T = n(t + s)
S = (t/T) x 100%
h = 100/n%
D = S + h
a = (i - 1)(t + s)
5 images:
---------
n = 5
t = 1s
s = 3s
d = delay time
T = total time
S = show start %
h = hide start %
D = delay start %
i = slide number
d = (5 - 1)(2 + 3) - 1 = 19s
T = 5(1 + 3) = 20s
S = (1/20) x 100% = 5%
h = 100/5% = 20%
D = 5 + 20 = 25%
*/
@-webkit-keyframes slide {
0% {
/* slide animation: */
/* -webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%); */
/* fade animation: */
opacity: 0;
}
/* S */
5%,
/* h */
20% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
/* D */
25%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%); */
/* fade animation: */
opacity: 0;
}
}
@keyframes slide {
0% {
/* slide animation: */
/* -webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%); */
/* fade animation: */
opacity: 0;
}
/* S */
5%,
/* h */
20% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
/* D */
25%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%); */
/* fade animation: */
opacity: 0;
}
}
.slide:nth-child(1) {
/*i = 1*/
/*animation-delay: 0s;*/
/*(i - 1)(t + s) = 0s*/
/*slide T infinite, first-slide t*/
-webkit-animation: slide 20s infinite, first-slide 1s;
animation: slide 20s infinite, first-slide 1s;
}
@-webkit-keyframes first-slide {
0%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
}
@keyframes first-slide {
0%,
100% {
/* slide animation: */
/* -webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0); */
/* fade animation: */
opacity: 1;
}
}
.slide:nth-child(2) {
/*
i = 2
(i - 1)(t + s) = (1)(4s)
*/
-webkit-animation-delay: 4s;
animation-delay: 4s;
}
.slide:nth-child(3) {
/*
i = 3
(i - 1)(t + s) = (2)(4s)
*/
-webkit-animation-delay: 8s;
animation-delay: 8s;
}
.slide:nth-child(4) {
/*
i = 4
(i - 1)(t + s) = (3)(4s)
*/
-webkit-animation-delay: 12s;
animation-delay: 12s;
}
.slide:nth-child(5) {
/*
i = 3
(i - 1)(t + s) = (4)(4s)
*/
-webkit-animation-delay: 16s;
animation-delay: 16s;
}