Облегчение Jquery не работает

Я пытаюсь использовать функцию JQuery замедления, называемую easeInBounce, но она не работает. У меня был поиск все об этом, и все страницы говорят, что я должен поставить {easing:'easeInBounce'} как здесь, но это не работает.

    <script src="//code.jquery.com/jquery-1.10.2.js"></script>

<div>Push!</div>
<input type="text">
<input type="text" class="middle">
<input type="text">

<script>
    $( "div" ).ready(function() {
        $( this ).css({
            borderStyle: "inset",
            cursor: "wait"
        });
        $( "input" ).slideDown( {easing: 'easeInBounce'}, 1000, function() {
            $( this )
                    .css( "border", "2px red inset" )
                    .filter( ".middle" )
                    .focus();
            $( "div" ).css( "visibility", "hidden" );
        });
    });

</script>

Как видите, я изменил щелчок и поставил.ready, чтобы загрузить эффект при загрузке страницы.

Это не работает, и я не знаю, как это сделать.

Спасибо

3 ответа

Единственными реализациями замедления в библиотеке jQuery являются стандартные, называемые swing, и те, которые развиваются с постоянной скоростью, называемые линейными. Более легкие функции доступны с использованием плагинов, в частности, комплекта jQuery UI.

Вам также нужно загрузить jQuery UI - http://api.jqueryui.com/easings/

Это не работает, потому что easeInBounce функция не является частью библиотеки jQuery. swing а также linear являются единственными функциями замедления, включенными в библиотеку jQuery.

Вы можете включить jQueryUI или плагин jQuery для упрощения, однако это может быть излишним, так что вы можете просто вставить любую соответствующую функцию (и) замедления непосредственно в ваш код.

$(document).ready(function() {

    $.easing.easeInBounce = function (x, t, b, c, d) {
        return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
    };
    $.easing.easeOutBounce = function (x, t, b, c, d) {
        if ((t/=d) < (1/2.75)) {
            return c*(7.5625*t*t) + b;
        } else if (t < (2/2.75)) {
            return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
        } else if (t < (2.5/2.75)) {
            return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
        } else {
            return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
        }
    };

    // now you can use it

    ....

Смотрите: JQuery ослабление функций без использования плагина

Почему бы вам не использовать .animate() с .easeInBounce эффект jquery.easing.min.js?

Используйте это так: http://jsfiddle.net/csdtesting/d88z6ur5/

$("div").ready(function () {

    $(this).css({
        borderStyle: "inset",
        cursor: "wait"
    });

    //$('#showme').fadeIn("easeInBounce");
    $('#showme').animate({
        top: '-=100px'
    }, 500, 'easeOutBounce', function () { // Animation complete.
        $(this)
            .css("border", "2px red inset")
            .filter(".middle")
            .focus();
        $("div").css("visibility", "hidden");
    });

});

Надеюсь, поможет!

Другие вопросы по тегам