There’s nothing wrong with shortcode-based plugin if it’s well made. To answer your question: there’s probably hundreds of ways but this is probably the easiest and most performant (similar to Reddit):
- If you need to add a spoiler, go to Text tab in post edit page
- Add
<span class="spoiler"></span>around the text you want to hide - Add following
CSSrule:.spoiler { background: #000; }. Has to be the same as text color or read the alternative below.
Now you have two options:
1. Show on hover: Add the following CSS rule:
.spoiler:hover {
background: transparent;
}
2. Show on click: Add the following function to theme’s .js file:
$('.spoiler').click( function() {
this.addClass('show');
// this.toggleClass('show'); <- if you want to toggle it for some reason
});
And the following CSS rule:
.spoiler.show {
background: transparent;
}
If you want to show text “Spoiler” or something similar, you could use CSS :before or :after, position it and hide/show it accordingly using either :hover or class .show mentioned before.
Alternative color:
If you don’t like dark spoiler boxes, you could modify this a little bit and also change text color to whatever color you chose for background. That way you could choose whatever color you want.
References: