我正在为我的移动网站使用 zepto 库。我最近了解到 zepto 没有slideDown()像 jquery 这样的插件。我想为 zepto 实现相同的功能。
我在 jsfiddle 上试过一个(http://jsfiddle.net/goje87/keHMp/1/)。在这里,它在显示元素时没有动画。它只是一闪而过。如何引入动画?
PS:我不能提供固定的高度,因为我会将此插件应用于高度属性未知的元素。
提前谢谢!!
我正在为我的移动网站使用 zepto 库。我最近了解到 zepto 没有slideDown()像 jquery 这样的插件。我想为 zepto 实现相同的功能。
我在 jsfiddle 上试过一个(http://jsfiddle.net/goje87/keHMp/1/)。在这里,它在显示元素时没有动画。它只是一闪而过。如何引入动画?
PS:我不能提供固定的高度,因为我会将此插件应用于高度属性未知的元素。
提前谢谢!!
演示:http: //jsfiddle.net/6zkSX/5
JavaScript:
(function ($) {
  $.fn.slideDown = function (duration) {    
    // get old position to restore it then
    var position = this.css('position');
    // show element if it is hidden (it is needed if display is none)
    this.show();
    // place it so it displays as usually but hidden
    this.css({
      position: 'absolute',
      visibility: 'hidden'
    });
    // get naturally height
    var height = this.height();
    // set initial css for animation
    this.css({
      position: position,
      visibility: 'visible',
      overflow: 'hidden',
      height: 0
    });
    // animate to gotten height
    this.animate({
      height: height
    }, duration);
  };
})(Zepto);
$(function () {
  $('.slide-trigger').on('click', function () {
    $('.slide').slideDown(2000);
  });
});
    这对我有用:
https://github.com/Ilycite/zepto-slide-transition
Zepto Slide Transition 插件向 Zepto.js 添加了以下功能:
滑下();
向上滑动();
滑动切换();
Speransky 的回答很有帮助,我为常见的下拉导航列表提供了一个简化的替代方案,并在 jsfiddle 上分为 slideUp 和 slideDown:http: //jsfiddle.net/kUG3U/1/
$.fn.slideDown = function (duration) {
    // show element if it is hidden (it is needed if display is none)
    this.show();
    // get naturally height
    var height = this.height();
    // set initial css for animation
    this.css({
        height: 0
    });
    // animate to gotten height
    this.animate({
        height: height
    }, duration);
};