代码之家  ›  专栏  ›  技术社区  ›  nielsv

淡出和淡入卡片元素

  •  0
  • nielsv  · 技术社区  · 7 年前

    我正在尝试淡出和淡入卡片元素。my html 如下所示:

    <form class=“mt-4 mw-800 center block animated fadeinup”>
    <DIV class=“row”>
    <DIV class=“col-lg-12内容”>
    <DIV class=“卡主卡”>
    <div class=“card header”>
    <h3 class=“card title”>$random_idea->标题</h3>
    </DIV>
    <div class=“card body”>
    $random_idea->描述
    </DIV>
    </DIV>
    </DIV>
    
    </DIV>
    <input type=“hidden”name=“_token”value=“csrf_token()”>
    <button id=“idea”type=“button”class=“btn btn raised btn primary btn block”>
    geef mij een ander idee</button>
    </Form>
    

    myjquery代码如下:

    $(“idea”).click(function()。{
    .ajaxsetup美元({
    标题:{
    'x-csrf-token':$('input[name=“_token”]').val())
    }
    (});
    
    美元.ajax({
    键入:“post”,
    网址:“/idea”,
    成功:功能(响应){
    $(“.card”).fadeout();
    
    $('<DIV class=“Card Primary”>''+
    'lt;div class=“card header”>''+
    '<h3 class=“card title”>'+response.title+'</h3>''+
    'lt;/DIV>''+
    '<div class=“card body”>'+响应。说明+
    'lt;/DIV>''+
    '</div>').appendto('.content').fadein();
    
    }
    错误:函数(jqxhr,textstatus,errorthrough){
    console.log(抛出错误);
    }
    (});
    (});
    

    卡DIV正在淡出和淡入。但是有一个延迟,显示不好。

    我的布局如下:

    当你点击按钮时,卡会淡出,另一张卡会淡入。但它不光滑。你有什么办法帮我吗?

    我的JQuery代码如下:

    $( "#idea" ).click(function() {
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('input[name="_token"]').val()
            }
        });
    
        $.ajax({
            type: "POST",
            url: "/idea",
            success: function(response) {
                $(".card").fadeOut();
    
                $('<div class="card card-primary">' +
                    '<div class="card-header">' +
                      '<h3 class="card-title">' + response.title + '</h3>' +
                    '</div>' +
                    '<div class="card-body">' + response.description +
                    '</div>' +
                  '</div>').appendTo('.content').fadeIn();
    
            },
            error: function(jqXHR, textStatus, errorThrown) {
                console.log(errorThrown);
            }
        });
    });
    

    卡DIV正在淡出和淡入。但是有一个延迟,这不太好。

    我的布局如下:

    enter image description here

    当你点击按钮时,卡会淡出,另一张卡会淡入。但它不光滑。你有什么办法帮我吗?

    3 回复  |  直到 7 年前
        1
  •  1
  •   Chayim Friedman    7 年前

    JQuery fadeIn() fadeOut() 是异步的。因此,新旧元素正在一起淡入/淡出。但是,这些方法得到的回调将在动画后调用。所以,你可以重写你的 success 功能如下:

    $(".card").fadeOut(function() {
      $(this).remove();
    
      $('<div class="card card-primary">' +
        '<div class="card-header">' +
          '<h3 class="card-title">' + response.title + '</h3>' +
        '</div>' +
        '<div class="card-body">' + response.description + '</div>' +
      '</div>').appendTo('.content').fadeIn();
    });
    
        2
  •  0
  •   Manish Gautam    7 年前

    试着用这个

    var html = '<div class="card card-primary">' +
                    '<div class="card-header">' +
                      '<h3 class="card-title">' + response.title + '</h3>' +
                    '</div>' +
                    '<div class="card-body">' + response.description +
                    '</div>' +
                  '</div>';
    
    $(html).hide().appendTo(".content").fadeIn(300);
    
        3
  •  0
  •   JanWillem Huising    7 年前

    它不能平稳运行的原因是您没有在fadeout/fadein函数中提供速度。

    如果你在读文件 https://www.w3schools.com/jquery/eff_fadeout.asp 注意到语法接受速度 $(selector).fadeOut(speed,easing,callback)

    文你填写你的速度 fadein() 还有你的 fadeout() 它应该进展顺利。