【发布时间】:2017-02-02 18:29:12
【问题描述】:
我正在尝试使用 JQuery UI 的幻灯片动画来切换 div。
单击链接时,页面中的 div 会从右侧滑动(如本小提琴所示)。
$("#toggle").click(function(event) {
event.stopPropagation();
$("#slider").toggle("slide", {
direction: "right"
}, 300);
});
#toggle {
font-weight: bolder;
cursor: pointer;
}
#slider {
z-index: 100;
display: none;
position: absolute;
right: 0;
top: 50px;
width: 300px;
height: 200px;
padding: 20px;
background: #DDD;
border: 1px solid #000;
}
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous">
</script>
</head>
<body>
<div id="toggle">
click me to slide
</div>
<div id="slider">
Slidin' in & Slidin' out
</div>
</body>
</html>
我遇到的问题是动画期间出现的这个滚动条,我不希望它显示,就像在JQuery UI's website 中一样,他们没有这个滚动条问题,我不知道他们是怎么做到的.
如果可能的话,我想避免将#slider 包装到另一个容器中,我目前也不能将他的父级设置为overflow: hidden。
有没有简单的方法来解决这个问题?
【问题讨论】:
-
为什么不能在
body元素上设置overflow: hidden? ->body { overflow: hidden; } -
如果您不想永久设置,您可以在单击元素后立即设置
overflow-x: hidden,并在动画完成后将其删除 -
不幸的是,我不能这样做,我需要身体的溢出保持自动,以便在必要时有一个滚动条:/隐藏溢出也不会这样做,因为它也会在动画持续时间内剪切内容(和所需)溢出。这个问题很棘手^^'感谢您的建议
标签: javascript jquery css jquery-ui