I’ve been working on a “lights off” effect for videos the other day. Here’s a demo page (with the appropriate code) that I might turn into a proper plugin if there is enough interest. Enjoy…
$(document).ready(function () {
// Build the link
$(".lightsoff").append('<div class="lightsoffbtn"><a href="#">Lights Off</a></div>');
// Prepare the overlay
$("body").append(
'<div class="lightsoff-ovelay off" style="position:relative; z-index:1; display:none;">close</div>',
);
// Variables
var $overlay = $(".lightsoff-ovelay"),
$containers = $(".lightsoff"),
$lightsoffTrigger = $(".lightsoffbtn a");
// LightsOff events
$lightsoffTrigger.each(function () {
// Variables
var $container = $(this).parent().parent();
// Apply some CSS
$container.css({ position: "relative" });
$(this).click(function (e) {
e.preventDefault();
if ($overlay.hasClass("off")) {
$container.css({
"z-index": 4000,
});
$overlay.css({
position: "fixed",
display: "block",
"text-indent": -99999,
"background-color": "#000000",
width: "100%",
height: "100%",
top: 0,
left: 0,
"z-index": 3000,
opacity: 0.7,
cursor: "pointer",
});
$overlay.removeClass("off").addClass("on").fadeIn();
} else if ($overlay.hasClass("on")) {
e.preventDefault();
$containers.css({ "z-index": 0 });
$overlay.removeClass("on").addClass("off").fadeOut();
}
});
});
$overlay.click(function (e) {
e.preventDefault();
$containers.css({ "z-index": 0 });
$overlay.removeClass("on").addClass("off").fadeOut();
});
});