我想让它specialist_pagecontent
从左边出现(滑动),就像blindleftin
从这里开始一样,但我无法让它与this一起工作。实际上,计划是,而不是hide()
理想blindLeftOut('fast');hide()
,而不是show()
我需要show();blindLeftOut('slow')
,但正如我所说,我不能让blindLeftOut 和blindLeftIn 为我工作。
问问题
3260 次
2 回答
1
给你想要动画进出的元素一个viweport
. 一个层,您可以通过它查看其中的元素。然后将 thisviewport
的overflow
属性设置为hidden
并给它一个特定的宽度/高度。
通过这种方式,您可以为其中的元素设置动画,viewport
使它们看起来可以滑入/滑出。
以下是我对您的 JS 所做的更改:
//notice the use of the "active" class to save state
$('.specialist_pagecontent').eq(0).addClass("active").animate({ left : 0 }, 500);
$('.specialist').click(function() {
//stop() is used to stop the current animation, so animations don't queue up if many buttons are clicked rapidly
$('.specialist_pagecontent').filter(".active").removeClass("active").stop(true).animate({ left : '-100%' }, 500);
$('.selected-specialist').removeClass('selected-specialist');
$(this).addClass('selected-specialist');
$('.specialist_pagecontent').eq($(this).index('.specialist')).addClass("active").stop(true).animate({ left : 0 }, 500);
});
以下是我对 CSS 的建议编辑:
.specialist_pagecontent {
position:absolute;
top:0;
left:-100%;
}
#specialist_lists {
float:left;
border: 1px solid #000000;
position:relative;
width:200px;
height:200px;
overflow:hidden;
}
这是一个演示:http: //jsfiddle.net/Jwkw6/1/
这绝对定位了要动画的元素,这非常有用,因为它从文档的常规流中删除了元素(这意味着它在动画时不会触发整个页面重绘)。这也创建了viewport
我提到的,创建了一个窗口,我们可以在其中查看动画。
于 2012-12-21T23:12:42.820 回答