#javascript #html #css #html5-canvas
Вопрос:
Я хотел бы сделать растягивающуюся форму пузырькового чата в Javascript. Он должен иметь градиентный цвет в качестве фона и возможность добавления границы вокруг фигуры. Результат был бы примерно таким:
Закругленная часть будет растягиваться, а треугольник останется посередине того же размера.
Я пробовал эти подходы:
- Нарисуйте SVG с
clipPaths
помощью . Проблема здесь заключалась в том, что треугольник не оставался в прежней форме (он растягивался). - CSS
clip-path
. Проблема здесь заключалась в том, что мне не удалось нарисовать такую фигуру, используя базовые фигуры. к сожалению,clip-path
не поддерживает несколькоclip-path
одновременно. - Нарисуйте пузырь
canvas
и используйте его в качестве фона. Поскольку пузырь должен растягиваться на основе содержимого внутри, проблема заключается в том, чтобы получать события, когда содержимое меняло размер и запускалоredraw
холст.
На данный момент canvas
подход может быть самым простым, но, возможно, есть какие-то другие решения, которых мне не хватает.
Ответ №1:
Вы можете использовать ::after
для достижения результата
.message {
display: inline-block;
height: 120px;
width: 130px;
border-radius: 8px;
position: relative;
background: rgb(2, 0, 36);
background: linear-gradient(10deg, rgba(2, 0, 36, 1) 0%, rgba(9, 9, 121, 1) 35%, rgba(0, 212, 255, 1) 100%);
}
.message::after {
content: "";
background-color: black;
height: 16px;
width: 16px;
position: absolute;
bottom: -4px;
left: 50%;
transform: translate(-50%) rotate(45deg);
}
<div class="message"></div>
Комментарии:
1. К сожалению, это с простым цветом, но мне нужен градиент.
2. Вы можете добавить градиентный цвет… Простой
3. и как выровнять цвет по треугольнику? вот в чем проблема.
4. Тебе придется раскрасить его отдельно
5. Спасибо за идею — очень помогла. Я тут слишком много думал.