是否“显示:无;”忽略div在视口中的位置?

时间:2019-11-16 10:48:35

标签: javascript jquery html css

在我的网站上,我有一个slideToggle div,其中包含一些非常大的图像。当该div打开时,进入视口时,我需要一张一张地滑动图片。

使用我的代码,div会打开,但是随后图像会同时全部滑动(就像它们是一个块一样)。

但是,如果我从slideToggle div中删除"display: none;"并以它为起点将其打开,则该脚本可以完美运行。

我想知道"display: none;"是否以某种方式忽略了div在视口中的位置。

这是我正在使用的slideToggle脚本(如果有帮助的话):https://jsfiddle.net/5efuhytm/

2 个答案:

答案 0 :(得分:0)

更改CSS,将display:none中的#show-images删除:


/*Panel that slides open*/
#show-images
{

    color: #FFF;
    padding: 0;
    width: 150px;

}

并添加此代码(因为您要隐藏的只是图像。)

#show-images img
{
   display: none;
}

更改JS,添加#show-images img

$(function()
  {
     $("a#toggle").click(function()
          {
           $("#show-images img").slideToggle(800);
           $("#toggle").toggleClass("fade");
            return false;
            });
  });

答案 1 :(得分:0)

代替

verbose

使用

display: none;

这是因为显示:none不会从文档中删除整个dom元素。而可见性:隐藏只会隐藏dom元素。在这种情况下,如果您不想更改视口,请隐藏可见性属性。

有关更多详细信息,请参见https://stackoverflow.com/a/133064/7544289

希望这会有所帮助!