Если мы предположим, что есть два слоя, верхний слой имеет цвет, нижний слой имеет оттенки серого, мы можем достичь желаемых результатов. Вот пример использования одного HTML-файла и двух файлов изображений. Файлы изображений идентичны, за исключением того, что один цвет, другой - оттенки серого. Мы используем CSS для позиционирования элементов и порядка z-index, а также jquery для обработки событий мыши, чтобы уменьшить размер верхнего слоя, что дает эффект отсечения. Единственное, что я могу сказать, это изменение указателя мыши на произвольное горизонтальное правило и вертикальное правило для создания эффекта занавеса ...
<html>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<style>
.picture-container
{
position: absolute;
}
#picture-container-color
{
z-index:2;
background-image: url("flower-color.jpg");
background-repeat: no-repeat;
background-color: red;
width: 500px;
height: 500px;
}
#picture-container-grey
{
z-index:1;
background-image: url("flower-grey.jpg");
background-repeat: no-repeat;
background-color: yellow;
width: 500px;
height: 500px;
}
</style>
</head>
<body>
<div id="picture-container-color" class="picture-container"></div>
<div id="picture-container-grey" class="picture-container"></div>
<script>
var mousedown = false;
$(".picture-container").mousedown(function(event) {
mousedown = true;
});
$(".picture-container").mousemove(function(event) {
if (mousedown === true) {
$("#picture-container-color").width(event.pageX);
$("#picture-container-color").height(event.pageY);
}
});
$(".picture-container").mouseup(function(event) {
mousedown = false;
});
</script>
</body>
</html>