【发布时间】:2014-11-04 20:22:47
【问题描述】:
我在构建内容滑块时遇到了一些问题。有 4 盒内容放置在绝对定位在相对定位的包装器内的标签内。从左到右,这些框的 ID 分别为 #module1、#module2、#module3 和 #module4。当我单击一个按钮时,我希望内容向右滚动。
- #module4 应该在页面右侧显示动画,隐藏,然后在页面左侧显示动画。
- #module3 应该放在#module4 所在的位置,并且不透明度设置为与#module4 相同的50%。
- #module2 应该移动到 #module3 所在的位置。
- #module1 应将不透明度设置为 100% 并移动到 #module2 所在的位置。
我遇到的问题是当#module4 滚动到页面右侧时,它在移到页面左侧时可见。在它滚动到左侧视图之前,我似乎无法弄清楚如何正确地将其隐藏起来。
这是我的动画代码:
#module1,#module2,#module3,#module4{position:absolute;top:0;width:31.9444%;height:200px;background:#999;}
.wrapper{width:100%;height:220px;position:relative;}
button{position:relative;z-index:1000;}
<body onLoad="contSlidr()">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div id="module1">Module1</div>
<div id="module2">Module2</div>
<div id="module3">Module3</div>
<div id="module4">Module4</div>
</div>
<script type="text/javascript">
//////////////////////////////////
// V a r i a b l e s //
//////////////////////////////////
var t = 400;
var mod = [$('#module1'),$('#module2'),$('#module3'),$('#module4')];
var m2 = mod[1].width();
var scrnW = $(document).width();
//////////////////////////////////
function contSlidr(){
$(document).ready(function(){
mod[0].css('left','-23%');
mod[0].css('opacity','.5');
mod[1].css('left',scrnW*0.14583);
var m2PosL = scrnW*0.14583;
mod[2].css('left',m2 + m2PosL + (scrnW*.041667));
mod[3].css('left','88.75%');
mod[3].css('opacity','.5');
});
}
//////////////////////////////////
function animateRight(){
var m2PosL = scrnW*0.14583;
mod[0].animate({
left:scrnW*0.14583,
opacity: 1
},t);
mod[1].animate({
left: parseInt(m2 + m2PosL + (scrnW*.041667))
},t);
mod[2].animate({
left:"88.75%",
opacity:.5
},t);
mod[3].animate({
left:"120%",
},{duration:t/2});
mod[3].css('left','-120%');
mod[3].animate({
left: "-23%",
},{duartion:t});
var b = mod.pop();
mod.unshift(b);
}
//////////////////////////////////
</script>
<button onMouseUp="contSlidr()">Set Left</button>
<button onMouseUp="animateRight()">Move Right</button>
</body>
【问题讨论】:
-
使用
onmouseover代替 onMouseUp 在 DOM EVENTS 中没有默认的 onMouseUp 事件
标签: javascript jquery animation