Сдвиньте поле ввода вверх

0

Когда моя кнопка становится парящей, я хочу открыть новое поле ввода, чтобы оно выглядело так, как будто оно появилось из-за кнопки.

Во-первых, я пытался сделать это только с помощью CSS. Поэтому я попытался работать с окруженной высотой формы, используя overflow: hidden. Но когда я это делаю, кнопка исчезает вместо поля ввода. Есть ли способ изменить это? Как конкретный браузер? Так много для этого.

Теперь я попытался работать с jQuery, но я не привык это делать. Я действительно надеюсь, что у вас есть идея заставить его работать правильно.

Значение, которое необходимо изменить, - margin: 0 auto -3px - 0 auto -31px

Вот мой пример

Теги:
css-transitions

2 ответа

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

Это можно сделать без javascript, если вы создадите окружающий div.

Я создал div с классом "некоторые" (в отсутствии творчества). Затем, когда вы его наводите, поле ввода становится видимым.

CSS:

.some {
    display: inline-block;
}

.some:hover .l-input {
    margin: 0 auto -3px; 
}

.l-button {
    text-transform: uppercase;
margin: 0 auto;
display: block;
width: 7em;
position: relative;
    cursor: pointer;
 }

.l-input {
margin: 0 auto -31px;
text-align: center;
text-transform: uppercase;
width: 5.9em;
position: relative;
height: 1.25em;
    display: block;
 }

Скрипт: http://jsfiddle.net/c3Veu/

редактировать:

Проверьте это: http://jsfiddle.net/sbNym/

Вместо этого используется абсолютная позиция, поэтому поле ввода выскакивает сзади. (:

  • 0
    оно работает. Спасибо за это. но кнопка должна остаться. не входное поле. любая идея?
  • 0
    нашел решение. Спасибо, в любом случае!
Показать ещё 1 комментарий
0

попробуйте этот HTML:

    <div id="container">
        <input type="text" name="bewerbung" class="l-input">
        <button type="button" value="BSend" class="l-button">code</button>
    </div>

и этот Script:

        $(document).ready(function () {

            $('.l-button').mouseover(function () {
                $('.l-input').animate({ bottom: '40px' });
            });
            $('.l-input').mouseleave(function () {
                $('.l-input').animate({ bottom: '6px' });
            });
        });

и этот CSS:

        body {
            padding: 5em;
        }

        /*NEW*/
        #container {
            position: relative;
            width: 90px;
        }
        /*NEW*/

        input {
            background: transparent;
            border: 1px solid rgba(155,86,77,0.2);
            border-width: 0 0 1px;
            -webkit-border-radius: 3px;
            -moz-border-radius: 3px;
            -o-border-radius: 3px;
            border-radius: 3px;
            padding: 5px;
            background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%,rgba(255,255,255,0.1) 100%);
            background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.1)), color-stop(100%,rgba(255,255,255,0.1)));
            background: -o-linear-gradient(top, rgba(0,0,0,0.1) 0%,rgba(255,255,255,0.1) 100%);
            background: -ms-linear-gradient(top, rgba(0,0,0,0.1) 0%,rgba(255,255,255,0.1) 100%);
            background: -moz-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(255,255,255,0.1) 100%);
            background: -webkit-linear-gradient(top, rgba(0,0,0,0.1) 0%,rgba(255,255,255,0.1) 100%);
            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1a000000', endColorstr='#1affffff',GradientType=0 );
            -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 3px 0 rgba(155,86,77,0.8);
            -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 3px 0 rgba(155,86,77,0.8);
            -ms-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 3px 0 rgba(155,86,77,0.8);
            -o-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 3px 0 rgba(155,86,77,0.8);
            box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 3px 0 rgba(155,86,77,0.8);
            font-family: Raleway;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            outline: none;
            -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
            -webkit-tap-highlight-color: transparent;
            -webkit-tap-highlight: none;
            -webkit-focus-ring-color: rgba(0, 0, 0, 0);
            -webkit-focus-ring-color: transparent;
            -webkit-focus-ring-color: none;
        }

        .l-input:active, .l-input:focus {
            -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 0 1px 4px rgba(105,157,182,0.3), 0 4px 0 rgba(155,86,77,0.8);
            -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 0 1px 4px rgba(105,157,182,0.3), 0 4px 0 rgba(155,86,77,0.8);
            -ms-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 0 1px 4px rgba(105,157,182,0.3), 0 4px 0 rgba(155,86,77,0.8);
            -o-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 0 1px 4px rgba(105,157,182,0.3), 0 4px 0 rgba(155,86,77,0.8);
            box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2) inset, -1px -1px 1px rgba(255,255,255,0.2) inset, -1px 0px 1px rgba(0, 0, 0, 0.2) inset, 0 0 1px 4px rgba(105,157,182,0.3), 0 4px 0 rgba(155,86,77,0.8);
        }

        button {
            display: inline-block;
            color: #FFF;
            background: #699DB6;
            padding: 7px 20px;
            border-radius: 5px;
            border: 1px solid rgba(0,0,0,0.3);
            border-bottom-width: 3px;
        }

        .l-button {
            text-transform: uppercase;
            margin: 0 auto;
            display: block;
            width: 7em;
            position: relative;
            cursor: pointer;
        }

        .l-input {
            margin: 0 auto -3px;
            text-align: center;
            text-transform: uppercase;
            width: 5.9em;
            position: absolute;            /*NEW*/
            bottom: 6px;            /*NEW*/
            height: 1.25em;
            display: block;
        }
  • 0
    Ваш ответ мне очень помог. У меня осталась одна маленькая проблема. потому что я использую .load для загрузки на своих сайтах, мне пришлось использовать $ (document) .on ('mouseleave', '.l-button', function () {но когда я это делаю, клиент не может заполнить что-то, потому что он выходит слишком быстро. Можно ли заставить его остаться, когда поле ввода тоже зависло?

Ещё вопросы

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