Skip to main content
 首页 » 编程设计

jquery之IE8 中的 SlideUp() 和 SlideDown() 效果

2026年07月28日7mfryf

我正在开发网络应用程序的原型(prototype)。 在此应用程序中,我的主窗口中有数据,底部有一个托盘,当用户单击选项卡时,托盘可以滑入和滑出。这是一个 fiddle ,演示了我在说什么:http://jsfiddle.net/SetNN/2/ .

HTML:

<div id="DataPane"> 
<div id="VisibleContainer"> 
    <div class="handle"> 
 
    </div> 
</div> 
<div id="InvisibleContainer"> 
    <div class="handle"> 
    </div> 
    <div class="dataContainer"> 
    </div> 
</div> 

CSS:

/* DATA PANE */ 
#DataPane { 
  position: absolute; 
  width: 100%; 
  bottom: 0; 
  opacity: 0.5; 
  z-index: 20; 
} 
#DataPane .handle { 
  width: 50px; 
  margin: 0px auto 0px auto; 
  background-color: #333333; 
  text-align: center; 
  cursor: pointer; 
  -webkit-user-select: none; 
  box-shadow: 4px 2px 11px rgba(50, 50, 50, 0.75); 
} 
#DataPane #VisibleContainer .handle { 
  height: 20px; 
  color: #ffffff; 
  border-top-left-radius: 5px; 
  border-top-right-radius: 5px; 
  border-bottom-right-radius: 0px; 
  border-bottom-left-radius: 0px; 
} 
#DataPane #InvisibleContainer { 
  display: none; 
} 
#DataPane #InvisibleContainer .handle { 
  height: 5px; 
  box-shadow: 4px 2px 11px rgba(50, 50, 50, 0.75); 
} 
#DataPane #InvisibleContainer .dataContainer { 
  width: 99%; 
  height: 49vh; 
  margin: 0px auto 0px auto; 
  background-color: #333333; 
  border-top-left-radius: 5px; 
  border-top-right-radius: 5px; 
  border-bottom-right-radius: 0px; 
  border-bottom-left-radius: 0px; 
  box-shadow: 4px 2px 11px rgba(50, 50, 50, 0.75); 
} 
#DataPane #InvisibleContainer .dataContainer #DataContainer { 
  position: absolute; 
  background-color: #ffffff; 
} 

附带的 javascript

    var dataPaneMinimumOpacity; 
 
$(document).ready(function () { 
    // Initialise variables 
    dataPaneMinimumOpacity = $("#DataPane").css('opacity'); 
 
    // Data pane 
    $("#DataPane .handle").click(function () { 
        var duration = 600; 
 
        var invisibleContainer = $("#DataPane #InvisibleContainer"); 
        if ($(invisibleContainer).is(':visible')) { 
            // In this case slideup() actually hides the container 
            $(invisibleContainer).slideUp(duration, function () { 
                $('#DataPane').fadeTo(duration / 2, dataPaneMinimumOpacity); 
            }); 
        } else { 
            $(invisibleContainer).slideDown(duration, function () { 
                $('#DataPane').fadeTo(duration / 2, 1); 
            }); 
        } 
    }) 
}); 

与 jquery 1.8.2 一起使用。

客户端很可能会要求它主要在 IE8 中工作...该动画在除 IE8 之外的所有浏览器中都可以正常工作。 在 IE8 中,在切换到 IE8 模式的 IETester 和 Explorer10 中,选项卡会向上移动一点,然后停止。当我再次单击时,它会移回原来的位置。

我缺少什么才能使其在 IE8 中正常工作?

当然,这样做的另一个问题是jsFiddle本身在IE8中不显示...

请您参考如下方法:

这在 IE8 中不起作用,因为高度是以 vh 单位(height: 49vh;) 设置的,IE8 浏览器不支持该单位。如果我们将其更改为 IE8 支持的任何单位,那么它就可以正常工作。

refer to below link for more info