【问题标题】:jQuery fadeOut() function on input type button输入类型按钮上的 jQuery fadeOut() 函数
【发布时间】:2017-07-12 12:12:06
【问题描述】:

我的页面上有一个输入类型按钮,其 CSS 为:

input[type="button"] {
    width: 80%;
    margin: 0 auto;
    height: 50px;
    font-size: 18pt;
    font-weight: bold;
    background-color: transparent;
    border: 1px solid blue;
    transition-duration: 0.8s;
    -moz-transition-duration: 0.8s;
    -webkit-transition-duration: 0.8s;
}

input[type="button"]:hover {
    background-color: lightgreen;
    color: black;
    font-weight: bolder;
    border: 2px solid darkgreen;
    /*border-radius: 50%;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;*/
}

当您单击按钮时,它会通过 JQuery 更改颜色,然后它应该会淡出。一切正常,除了它淡出。它没有消失,而是消失了。这是我的 jQuery 代码...

 $('#process').click(function() {
        $(this).css({"background-color":"black", "color":"white"});

        $(this).fadeOut(800, function() {
            $.ajax({
                url: 'parser.php',
                dataType: 'text',
                type: 'post',
                data: $('#checkup-form').serialize(),
                success: function (data) {
                    $('#main').fadeOut('slow', function() {
                        $(this).html(data).fadeIn('fast');
                    });
                },
                error: function(error) {
                    alert('error; ' + eval(error));
                }
            });
        });
    });
});

它会等待时间,但不会褪色......它就像我使用隐藏功能一样消失并立即进入我的 ajax 调用。我试过注释掉 .css() 段,但这似乎并没有改变它。同样,它会暂停 800 或我在那里放置多长时间,但不会淡出,它会消失。

提前感谢您的帮助!

【问题讨论】:

    标签: php jquery css ajax fadeout


    【解决方案1】:

    JS sn-p 有错误。我已经删除了最后一行,现在它消失了。

     $('#process').click(function() {
            $(this).css({"background-color":"black", "color":"white"});
    
            $(this).fadeOut(800, function() {
                $.ajax({
                    url: 'parser.php',
                    dataType: 'text',
                    type: 'post',
                    data: $('#checkup-form').serialize(),
                    success: function (data) {
                        $('#main').fadeOut('slow', function() {
                            $(this).html(data).fadeIn('fast');
                        });
                    },
                    error: function(error) {
                        alert('error; ' + eval(error));
                    }
                });
            });
        });
    input[type="button"] {
        width: 80%;
        margin: 0 auto;
        height: 50px;
        font-size: 18pt;
        font-weight: bold;
        background-color: transparent;
        border: 1px solid blue;
        transition-duration: 0.8s;
        -moz-transition-duration: 0.8s;
        -webkit-transition-duration: 0.8s;
        transition-property: color, background-color;
    }
    
    input[type="button"]:hover {
        background-color: lightgreen;
        color: black;
        font-weight: bolder;
        border: 2px solid darkgreen;
        /*border-radius: 50%;
        -moz-border-radius: 50%;
        -webkit-border-radius: 50%;*/
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <input type="button" id="process">

    我通过将转换限制为仅需要的属性来修复它(请添加供应商前缀):

    transition-property: color, background-color;
    

    【讨论】:

    • 我很抱歉,我一定复制了最后一个});偶然,最后一个});实际上与 $(document).ready() 一起使用。但是,如果这就是你从中删除的所有内容并且它正在正常褪色......问题是,为什么它没有在我这边褪色。嗯...这将需要一些调查。我现在用的是chrome,我会在其他浏览器上试试。
    • 是的,这很奇怪。它开始淡出,淡出一部分然后消失并跳入ajax调用,就像它完成了它的动画一样。如果您想查看它所在的实际页面,也许这将有助于弄清楚并且您会看到我错过的一些东西,它位于ag.kirindesigns.com
    • 我似乎通过使用 fadeTo(800, 0, function(){...}) 修复了它,但它仍然在淡入淡出实际完成之前触发结束动画功能。有点奇怪,但现在的效果看起来有点整洁,我可能会喜欢这样。它开始淡化按钮,然后在一半多一点的地方开始淡出整个页面......我可以忍受。不过,我仍然想知道发生了什么。
    • 谢谢,我已经解决了问题,请查看更新后的答案。
    • 谢谢!它现在工作完美!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2016-10-03
    • 2020-10-06
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多