我正在使用$(’#container_div’)。load(url)通过ajax填充div。我想将高度设置为返回内容的高度,但真的无法弄清楚如何实现此目的。
我试过使用这样的东西:
$('#main').fadeOut(function() {
$('#main').load(url, function(data) {
var newHeight = $(data).height();
$('#main').animate({height:newHeight}, function() {$('#main').fadeIn();});
});
});
但是可以看到,在很多层面上这都是错误的。特别是由于newHeight === undefined的事实。
有人可以在这里指出正确的方向吗?我将永远感激不已。
由于fadeOut()是通过隐藏目标元素来完成的,因此您的#main很有可能在加载新数据时被完全隐藏,从而使任何高度的动画都不可见,因此毫无意义。
但是,您 可以
使用类似的方法$('#main').show(400)
,使元素从(0,0)的大小和0的不透明度动画化为容器和内容允许的大小以及完全可见的1的不透明度(并并行运行这些动画,使它们都可见)。
但是,假设您更关心动画高度而不是淡入淡出,那么您仍然会遇到一个问题:当load()调用其回调时,目标元素的高度已经 是
内容的高度(或尽可能靠近它)。所以动画不会做任何事情。
我在上一个问题上发布了一个插件,该插件可以执行您想要的操作,但是您需要使用$
.get()
而不是load():
$.get(url, function(data) {
$('#main').showHtml(data);
});
…其中showHtml定义为:
// Animates the dimensional changes resulting from altering element contents
// Usage examples:
// $("#myElement").showHtml("new HTML contents");
// $("div").showHtml("new HTML contents", 400);
// $(".className").showHtml("new HTML contents", 400,
// function() {/* on completion */});
(function($)
{
$.fn.showHtml = function(html, speed, callback)
{
return this.each(function()
{
// The element to be modified
var el = $(this);
// Preserve the original values of width and height - they'll need
// to be modified during the animation, but can be restored once
// the animation has completed.
var finish = {width: this.style.width, height: this.style.height};
// The original width and height represented as pixel values.
// These will only be the same as `finish` if this element had its
// dimensions specified explicitly and in pixels. Of course, if that
// was done then this entire routine is pointless, as the dimensions
// won't change when the content is changed.
var cur = {width: el.width()+'px', height: el.height()+'px'};
// Modify the element's contents. Element will resize.
el.html(html);
// Capture the final dimensions of the element
// (with initial style settings still in effect)
var next = {width: el.width()+'px', height: el.height()+'px'};
el .css(cur) // restore initial dimensions
.animate(next, speed, function() // animate to final dimensions
{
el.css(finish); // restore initial style settings
if ( $.isFunction(callback) ) callback();
});
});
};
})(jQuery);
问题内容: 我必须在Docker容器上安装一些依赖项,我想使用python:3.6-alpine版本以使其尽可能轻巧,但是alpine附带的apk软件包管理器给我带来了麻烦,所以我想获得apt -获取包管理器。我试过了: 它没有工作。 如何将其放在容器上? 问题答案: 由于多种原因,使用多个包装系统通常是一个非常糟糕的主意。程序包可能会发生碰撞和破裂,并且最终会比开始时产生更多混乱。 一种更可行的
问题内容: 我创建了一个简单的弹跳动画,该动画将应用于元素的状态: 动画效果很好,但是当您从元素中删除光标时,动画会突然停止。无论如何,是否有强迫它继续设置的迭代次数(即使鼠标已经退出)?基本上,我在这里寻找的是由状态触发的动画。我不是 在寻找 JavaScript解决方案。无论如何,我还没有看到在规范中执行此操作,但是也许我错过了一个明显的解决方案? 问题答案: 恐怕解决此问题的唯一方法是使用一
我正在使用使用从中提供数据的。我想禁用事件的动画,但将它们保留为//。我尝试在使用的上调用,但动画仍然出现。如果我调用,所有动画都会按预期成功删除。 我尝试查看实现,似乎如果是,将通过保留旧的viewHolder并将其交叉淡出到新的viewHolder来对更改事件进行动画处理。我不想这样。如果是,则旧的和新的viewHolders将是相同的对象,取而代之的是从x到x的动画(即没有实际移动)。然而,
问题内容: 我想动画一个从到的高度。我似乎无法使其工作。有人知道吗? 这是代码: 问题答案: 保存当前高度: 暂时将高度切换为自动: 获取自动高度: 切换回curHeight并设置动画autoHeight: 并在一起:
我使用LXC在ubuntu服务器上创建了两个容器(比如TestOneContainer和TestTwoContainer)。现在,lxc文件系统位于/home文件夹中,两个容器也使用/home文件夹。在安装Ubuntu服务器操作系统时,我为这两个容器创建了两个分区(100 GB用于TestOneContainer,200 GB用于TestTwoContainer)。我想在100GB空间中装入Tes