Как сделать эффект занавеса в сети, как показано на картинке? - PullRequest
0 голосов
/ 30 августа 2018

эффект занавеса

Здравствуйте, мне нужно сделать этот эффект в программе просмотра фотографий, я понятия не имею, как это сделать, пожалуйста, помогите?

1 Ответ

0 голосов
/ 30 августа 2018

Если мы предположим, что есть два слоя, верхний слой имеет цвет, нижний слой имеет оттенки серого, мы можем достичь желаемых результатов. Вот пример использования одного 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>
...