首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示的div中的jQuery旋转木马:无

显示的div中的jQuery旋转木马:无
EN

Stack Overflow用户
提问于 2012-12-07 17:41:22
回答 3查看 6.9K关注 0票数 0

我必须在我的网站上使用一个jQuery响应旋转木马,它有4个显示的项目,每次滑动一个,等等。重点是:这个旋转木马被放置在一个带有display:none的div中,它显示在一个带有slideToggle脚本(jQuery)的按钮上。当div出现时,旋转木马不会显示。没什么!注意,如果我移除display:none,旋转木马就会显示得很完美。我已经尝试了一堆旋转木马插件( of滑块,旋转木马,弹性滑块,挠性滑块),这个问题会发生在所有这些人身上。然后..。我要疯了!!

不好意思,meSorry朋友们,这是代码:

(这里是FlexSlider的例子,但代码与其他插件相似)

代码语言:javascript
复制
<div id="hiddenDiv">
  <div id="hiddenDivInner">
    <div class="flexslider">
      <ul class="slides">
        <li>...</li>
        <li>...</li>
        <li>...</li>
      </ul>
    </div>
  </div>
</div>

CSS

代码语言:javascript
复制
#hiddenDiv{
    display:none;
    padding-bottom:10px;
    background: url("../img/xxx.gif") repeat left bottom #FFFFFF;
}

脚本(从站点复制粘贴)。此脚本介于$(document).ready和其他脚本之间。已尝试删除load函数)

代码语言:javascript
复制
$(window).load(function() {
  $('.flexslider').flexslider({
    animation: "slide",
    animationLoop: false,
    itemWidth: 300,
    itemMargin: 5,
    minItems: 1,
    maxItems: 4
  });
});


$("#trigger").click(function () {
    $("#hiddenDiv").slideToggle(400, "easeInOutExpo");
});

我提醒您,使用这段代码和no display:none,每个传送带都可以工作,如果我使用slideToggle按钮(#触发器)上下滑动div的话。

EN

回答 3

Stack Overflow用户

发布于 2012-12-07 19:39:46

与其使用display: none;隐藏旋转木马,不如使用visibility: hidden;

那么,当您准备展示它时,请使用visibility: visible;

旋转木马在初始化时需要它的容器有尺寸。使用display: none;时,尺寸为零,旋转木马未正确初始化。

此外,display: none;将元素从流中取出,其中visibility: hidden;将元素保持在原地,但隐藏在其中。这样做的好处是,当您使元素出现时,您的周围内容流不会被中断。

请参阅:https://developer.mozilla.org/en-US/docs/CSS/visibility

我不能看到您所有的代码/布局,但可能会尝试这样的方法。修改一下你的布局..。

代码语言:javascript
复制
#hiddenDiv{
    visibility: hidden;
}


$("#trigger").click(function () {
    $("#hiddenDiv").css('visibility', 'visible');
});

编辑:

另一种可能是只在构建完它之后才隐藏它,而不是在初始的CSS中。

代码语言:javascript
复制
$(document).ready(function() {

    $('.flexslider').flexslider({
        animation: "slide",
        animationLoop: false,
        itemWidth: 300,
        itemMargin: 5,
        minItems: 1,
        maxItems: 4
    });

    $("#trigger").click(function () {
        $("#hiddenDiv").slideToggle(400, "easeInOutExpo");
    });

    $("#hiddenDiv").css('display', 'none'); // the very last thing

});

CSS:

代码语言:javascript
复制
#hiddenDiv{
    padding-bottom:10px;
    background: url("../img/xxx.gif") repeat left bottom #FFFFFF;
}
票数 0
EN

Stack Overflow用户

发布于 2012-12-07 22:52:20

“隐藏”div,将其放置在视口之外。

代码语言:javascript
复制
#hiddenDiv {
    position:absolute;
    top: -3000px;
}

脚本将能够初始化,因为div不是隐藏的,但它是不可见的。

您可以将显示设置为“无”,并将“位置”设置为“onload”或“单击触发器”中的相对位置。

编辑绝对定位将元素从文档流中移除,因此它将表现为显示:无。

票数 0
EN

Stack Overflow用户

发布于 2013-08-04 15:53:38

这是我的办法!我认为这是正确的!

代码语言:javascript
复制
.hidden{
  visibility: hidden;
  position: absolute;
  width: 300px;
  overflow: hidden;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13768254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档