动画div从高度:0px到第一次单击时自动失败

时间:2016-07-04 01:00:33

标签: javascript jquery html css velocity.js

我试图将块元素从0px设置为自动。但是,首次点击它只是立即显示在其自动高度。第一次点击后,它可以平滑地显示为可见和不可见。

CSS:

.item .comments {
  display: none;
  overflow: hidden;
  background: #f7f8fb;
  padding: 0 10px;
  margin: 0;
}

JS:

$(document).on('click', '.btn-comment', function(){

    var comments = $(this).closest('.item').find('.comments');

    if (!comments.is(':visible')) {
      comments.show().velocity({
          height: comments.get(0).scrollHeight
      }, 250, function(){
          $(this).height('auto');
      }, 'ease');
    } else {
      comments.velocity({
        height: 0
      }, 250, function(){
        $(this).hide();
      }, 'ease');
    }

});

3 个答案:

答案 0 :(得分:0)

尝试使用slideToggle(),如下所示:

$(this).closest('.item').find('.comments').slideToggle();

答案 1 :(得分:0)

您似乎只是忘记输入

class AdjacencyList <V, E, VC: Collection, EC: Collection
    where VC.Iterator.Element == Vertex<V>, EC.Iterator.Element == Edge<E>> {

    var vertices: VC
    var edges: EC

    init(vertices: VC, edges: EC) {
        self.vertices = vertices
        self.edges = edges
    }
}

let arrayList = AdjacencyList<String, Int, Array<Vertex<String>>, Array<Edge<Int>>>(vertices: [], edges: [])
arrayList.vertices // [Vertex<String>]
arrayList.edges // [Edge<Int>]

// as long as Vertex and Edge are Hashable
let setList = AdjacencyList<String, Int, Set<Vertex<String>>, Set<Edge<Int>>>(vertices: [], edges: []) 
setList.vertices // Set<Vertex<String>>
setList.edges // Set<Edge<Int>>
CSS中的

。这使它在开始时设置为自动。

答案 2 :(得分:0)

我认为在jQuery中不是这样的功能你可以切换点击所以我为你做了一个,https://jsfiddle.net/moongod101/zobbvm79/我是JS的新手,我认为动画你可以把它给css,{{ 1}}和addClass是此操作的要点