Ich versuche, einen Hintergrundbild-Slider in einem WP-Thema zu erstellen, ohne tief in den Code-Modus zu gehen. Also schaute ich mich um und fand diese solution.Hintergrund Img Slider in WP Thema - Elternelement Opazität versteckt Inhalt
Was ich bisher tat:
1 - Added eine Id auf eine Zeile in einem visuellen Komponisten
2 - Hinzugefügt diesen CSS zum Thema benutzerdefinierten CSS:
#slideshow {
width: 100%;
height: 100%;
display: block;
opacity: 0.0;
background-color: #000;
/*
set background images as `url(/path/to/image)` here,
separated by commas
*/
background-image: url("http://lorempixel.com/400/400/cats/?1"),
url("http://lorempixel.com/400/400/animals/?2"),
url("http://lorempixel.com/400/400/nature/?3"),
url("http://lorempixel.com/400/400/technics/?4"),
url("http://lorempixel.com/400/400/city/?5");
background-size: cover, 0px, 0px, 0px;
/* set transtitions at 3000ms
-webkit-transition: background-image 3000ms linear;
-moz-transition: background-image 3000ms linear;
-ms-transition: background-image 3000ms linear;
-o-transition: background-image 3000ms linear;
transition: background-image 3000ms linear;
*/
}
3 - Laden Sie eine js-Datei hoch, die diese Funktion enthält:
jQuery(function($) {
// set `$.fx.interval` at `0`
$.fx.interval = 0;
(function cycleBgImage(elem, bgimg) {
// `elem`:`#slideshow:after`
// set, reset, delay to `1000` after background image reset
elem.css("backgroundImage", bgimg)
// fade in background image
.fadeTo(3000, 1, "linear", function() {
// set `delay` before fadeing out image
// fade in background image
$(this).delay(3000, "fx").fadeTo(3000, 0, "linear", function() {
// split background image string at comma , creating array
var img = $(this).css("backgroundImage").split(","),
// concat first background image to `img` array,
// remove first background image from `img` array
bgimg = img.concat(img[0]).splice(1).join(",");
// recursively call `cycleBgImage`
cycleBgImage(elem, bgimg);
});
});
}($("#slideshow")));
});
Und alle funktionieren gut.
Was ist das Problem: wie diese Funktion die Deckkraft von, in diesem Fall, ein Elternelement ändern, das Kindelement (a div
) verschwinden auch. So
:
1 - Habe sehe ich in anderen Fragen answer kann ich diese Funktion zu ändern, so dass es mit RGBA statt Undurchsichtigkeit beginnen?
2 - Ich sah in another answer, dass wir dies mit einem Pseudo-Element umgehen könnten, aber ich wusste irgendwie nicht, wie man die Funktion ändert, um so zu arbeiten ... irgendwelche Ideen?
3 - Gibt es einen besseren Weg, dies zu tun?
Danke.