Нужна помощь в расширении фигуры

0

Я пытаюсь сделать сердце, которое продолжает расширяться из центра, как ЭТО.

Здесь JSFiddle из css сердца.

<div id="heart"></div>

Как я могу сделать это пульсирующим и расширяющимся, как gif?

  • 0
    Вы используете jQuery или другую библиотеку, или вам нужно, чтобы это был чистый JS?
  • 1
    отцентрируйте его в div, увеличьте ширину и высоту и повторите
Показать ещё 2 комментария
Теги:

2 ответа

0
Лучший ответ

Итак, вам может быть лучше использовать изображение, а не форму css. Поскольку границы формы не являются текучими, вам будет трудно растягивать и уменьшать форму, чтобы создать пульсирующий эффект. Если вы используете изображение, все, что вам нужно сделать, это анимировать размер контейнера div и вам хорошо идти.

Делать это один раз легко, но поскольку я предполагаю, что вы хотите, чтобы он пульсировал постоянно, нам нужно сделать анимацию в цикле. Используя jQuery, что-то вроде этого будет хорошо работать:

JQuery

function animatethis(targetElement, speed) {
    $(targetElement).animate({ width: "+=100px"},
    {
        duration: speed,
        complete: function ()
        {
            targetElement.animate({ width: "-=100px" },
            {
                duration: speed,
                complete: function ()
                {
                    animatethis(targetElement, speed);
                }
            });
        }
    });
};

animatethis($('#heart'), 2000);

HTML

<div>
    <img src="..." id="heart" />
</div>

CSS

#heart {
    position: relative;
    width: 150px;
}

И вот скрипка: http://jsfiddle.net/xffLZ/2/

Чтобы изменить размер, вам нужно отрегулировать два значения width в jQuery и, чтобы изменить скорость его пульсации, измените значение числа в animatethis($('#heart'), 2000);

ОБНОВИТЬ

Хорошо, поэтому у меня есть обновленный ответ для вас... Я написал сценарий, используя jQuery и jQueryUI, которые будут пульсировать некоторые сердечные образы, как в примере gif, который вы предоставили. Вот обновленная скрипка с тем, что у меня есть до сих пор: http://jsfiddle.net/t9mZZ/3/

Обратите внимание, что это использует как jQuery, так и jQueryUI, поэтому вы будете включать две библиотеки, и, честно говоря, gif может быть легче. Но, если вы чертовски настроены на то, чтобы это произошло без gif, это должно сработать.

HTML

<div id="container">
    <img id="heart1" src="..." />
    <img id="heart2" src="..." />
<div>

CSS

#container {
    width: 100px;
    height: 100px;
    position: relative;
    overflow: hidden;
}
img{
    width:250px;
    display:none;
    position: absolute;
    left: -75px;
    top: -50px;
}

JQuery

function animatethis(target1, target2) {
    $(target1).show('scale', function () {
        $(target1).css('z-index','0');
        $(target2).css('z-index','1');
        $(target2).show('scale', function () {
            $(target1).css('z-index','1');
            $(target2).css('z-index','0');
            animatethis(target1, target2);
        });
    });
            };

animatethis($('#heart1'), $('#heart2'));
  • 0
    Хороший человек. но он хотел пульсировать сердце из центра.
  • 0
    @ Учусь, я пропустил это. Я обновлю свой код сейчас. Спасибо!
Показать ещё 5 комментариев
2

Это можно сделать с помощью css3

Долгое время назад я видел этот тип animation. поэтому подумали поделиться

Вот скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню