Как сделать вращающуюся строку поиска

Я все время искал, как мне сделать эту вращающуюся панель поиска https://dribbble.com/shots/344730--Loooong-the-search-bar. Я также искал код для вращения объекта, но тоже не нашел. Я также пытался использовать другое слово вместо вращающейся панели поиска, например «как вращать фотографию», но я не нашел ничего, что соответствовало бы моему вопросу. Я всегда ищу, прежде чем спросить, но я не мог найти ничего, что соответствовало бы моему вопросу. Я знаю, как развернуть панель поиска, но я не знаю, как вращать значок поиска в конце, когда я нажимаю на него.


person Omar Hefny    schedule 07.02.2016    source источник
comment
Я думаю, он хочет, чтобы анимация панели поиска вращалась, а не расширялась. Это верно, Омар?   -  person nycynik    schedule 07.02.2016
comment
Я действительно нашел URL-адрес (jsfiddle.net/mackry/vBxqC/show), но я не знаю, как я могу получить с этого URL-адреса код html/css. Пожалуйста, если кто-нибудь знает, как получить html или css из URL-адреса, скажите мне как можно быстрее.   -  person Omar Hefny    schedule 09.02.2016


Ответы (1)


Весь код, который вам нужен, находится в этом JSFiddle.

HTML:

<h3>A <a href="http://goo.gl/qCtsD" target="_blank">dribbble shot</a> recreated for the web by <a href="http://dribbble.com/ryanmclaughlin">ryan mack</a>.<p>Try typing <i>etwas</i> and press enter.</p></h3>

<form>
    <input id="search" type="search" name="search" />
    <p></p>
</form>

CSS:

    form {
    display: inline-block;
    margin: 0 100px;
    position: relative;
}

#search {
    border: 4px solid #999;
    cursor: pointer;
    height: 10px;
    padding: 8px;
    position: relative;
    width: 10px;

    -moz-border-radius: 15px;
    -webkit-border-radius: 15px;
    border-radius: 15px;

    -moz-appearance: none;
    -webkit-appearance: none;
}

#search:hover {   
    border-color: #199ed9;
}

#search:focus {   
    border-color: #199ed9;
    outline: none;
    width: 180px;

    -moz-transition: all .2s ease-in-out;  
    -webkit-transition: all .2s ease-in-out;
}

#search.searching {
    margin-left: 80px;
    width: 10px;

    -moz-transition: all .2s ease-in-out;  
    -webkit-transition: all .2s ease-in-out;
}

#search + p {
    background: #999;
    content: '';
    cursor: pointer;
    display: block;
    height: 10px;
    position: absolute;
    right: 10px;
    top: -8px;
    width: 4px;

    -moz-border-radius: 1px;
    -webkit-border-radius: 1px;
    border-radius: 1px;

    -moz-transform: rotate(135deg);
    -webkit-transform: rotate(135deg);
    -moz-transform-origin: center 20px;
    -webkit-transform-origin: center 20px;
}

#search + p:hover,
#search:hover + p,
#search:focus + p {   
    background: #199ed9;
}

#search.searching + p {
    -moz-animation: rotateHandle .6s linear 6;
    -webkit-animation: rotateHandle .6s linear 6;
}

@-webkit-keyframes rotateHandle {
    from { -webkit-transform: rotate(135deg); }
    to { -webkit-transform: rotate(-225deg); }
}

@-moz-keyframes rotateHandle {
    from { -moz-transform: rotate(135deg); }
    to { -moz-transform: rotate(-225deg); }
}

h3 {
    color: #888;
    font-size: 20px;
    font-family: 'Helvetica Neue', Arial, sans-serif;
    margin: 100px 100px 50px;

    -webkit-font-smoothing: antialiased;
}

h3 p {
    font-size: 13px;
}

a {
    color: #199ed9;
    font-weight: bold;
    text-decoration: none
}

a:hover {
    text-decoration: underline;   
}

Javascript:

var form = $('form'),
    search = $('#search');

form.submit(function(e) {
    e.preventDefault();

    search.addClass('searching').val('');

    setTimeout(function() {
        search.removeClass('searching');
    }, 3600);
});

/* what's with input padding? :/ */
if ($.browser.mozilla) {
    search.css('padding', '3px');
}

И парень, который это сделал: http://dribbble.com/ryanmclaughlin

person nycynik    schedule 09.02.2016
comment
Я пробовал этот код раньше, но без всякой причины он не вращается, но по этой ссылке (jsfiddle.net/mackry/vBxqC/show) он работает. Если кто-нибудь может решить эту проблему или сказать мне причину, по которой он не вращается при нажатии Enter, но на веб-сайте он вращается. - person Omar Hefny; 10.02.2016
comment
один какой сайт? Ваш сайт? Вы должны сказать нам ссылку. - person nycynik; 11.02.2016
comment
Я имею в виду, что он крутится в демо здесь (jsfiddle.net/mackry/vBxqC/show), но когда я вставляю этот код туда, в ответ, он не крутится. - person Omar Hefny; 13.02.2016
comment
щелкните правой кнопкой мыши на странице, нажмите проверить. Затем обновите страницу и посмотрите, видите ли вы ошибку. Без URL я не могу сказать, что происходит. - person nycynik; 16.02.2016
comment
не могли бы вы попытаться поместить этот код, который вы разместили там, в ответе в html-файле, а затем попытаться открыть его и посмотреть, вращается ли он, когда вы что-то вводите и нажимаете ввод, потому что я не мог найти никаких ошибок, но он все еще не крутится. - person Omar Hefny; 19.02.2016
comment
Вращающийся код/css/js работает нормально. Может быть множество причин, по которым это не сработает для вас, например, у вас может быть другой стиль, который переопределяет стили, вы можете не включать javascript или у вас может быть ошибка в JS. Также может быть, что ваш браузер устарел. На данный момент единственный способ, которым кто-либо может вам помочь, — это опубликовать свой код в общедоступном месте, чтобы мы могли его посмотреть. - person nycynik; 24.02.2016