【问题标题】:Add a jQuery UI show effect to UI tabs向 UI 选项卡添加 jQuery UI 显示效果
【发布时间】:2012-07-14 16:09:11
【问题描述】:

总结:实现了 JQuery 选项卡。只是想为选项卡添加效果。

HTML 代码:

   <div id=tabs >
    <ul>
   <li><a href="#div1"><span>Div1</span></a></li>
    <li><a href="#div2"><span>Div2</span></a></li>
    <li><a href="#div3"><span>Div3</span></a></li>
     </ul>
    <div id=div1 ></div>
    <div id=div2 ></div>
    <div id=div3 ></div>
     </div>

JQuery 代码:

 $(document).ready(function() {
  $("#tabs").tabs();
 });

这可以很好地实现选项卡 GUI 并创建选项卡式界面。 我现在想实现一个效果。 例如'blind','bounce','clip','drop','explode','fold','highlight','puff','pulsate','scale','shake','size','slide ', '转移'。

我该怎么做?从我读过的文档中:

   $("#tabs").tabs(
   //here is where there should be implementation of the effect

   "#div1",{effect:'explode'}
   "#div2",{effect:'explode'}
   "#div3",{effect:'explode'}

   );
   });

这段代码对进一步的动画没有任何建设性的作用。

试过了

$("#div1"){effect:'effectname' 'effectproperties' }

但这也是无效的。

他们从文档中提供的一个确实有效的例子:

 $("#tabs").tabs(
   //here is where there should be implementation of the effect

 { fx: { opacity: 'toggle' } } 
  );

【问题讨论】:

  • 您的标记无效;你需要一个 ulol 在那些 li 周围。
  • @John 看起来设置效果的正确等待是$('#tabs').tabs('option', 'fx', { effect : 'explode });——尽管我可能是错的。
  • {fx: {opacity: 'toggle'}} 确实有效,我确实检查过。您需要考虑一下自己在做什么:转出一个标签,转入另一个标签。您正在尝试处理这两个操作吗?
  • 你也可以看看here
  • @Stano - 问题是在 jQuery.ui 中使用effects 系统。没那么简单,opacity 演示的效果确实有效。但是$.tabs() 不像explode 那样处理effects

标签: jquery jquery-ui jquery-ui-tabs jquery-effects


【解决方案1】:

要使用explode 完成您想要的(假设这实际上是您想要使用的并且它不是示例),您需要处理$.tab() show 事件;至少据我所知,$.tabs() 内置的fx 子系统不允许您选择 UI 效果。

所以,或多或少有点像:

$("#tabs").tabs({
    show: function(event, ui) {
        var $target = $(ui.panel);

        $('.content:visible').effect(
            'explode',
            {},
            1500,
            function(){
                $target.fadeIn();
        });
    }
});

http://jsfiddle.net/userdude/2TDsq/2

注意,如果你只想使用内置的fx选项系统,你应该:

$("#tabs").tabs(
    {fx: {opacity: 'toggle'}}
);

http://jsfiddle.net/userdude/2TDsq/1/

然而,这并不难,其他人正在链接到(可能很多)关于如何使用该设置的 SO 副本。

【讨论】:

  • 你是什么意思?我不太明白,第一个还是第二个例子?
  • 你的'explode'例子很棒。它可以用任何想要的效果代替:'blind'、'bounce'、'clip'、'drop'、'explode'、'fold'、'highlight'、'puff'、'pulsate'、'scale'、'摇','尺寸','滑动','转移'。
  • Explode 看起来有点乱; puff 虽然效果很好:jsfiddle.net/userdude/2TDsq/3
  • 有什么方法可以选择在现有面板而不是新的活动内容上发生的效果?即 'puff' / 'explode' 应该使用当前面板而不是新面板。我想这意味着 var 目标需要改变。如果可能的话,有什么想法吗?
  • 你是说被隐藏的那个?那就是运行事件的那个。当前一个$target.fadeIn()。如果您希望花费更长的时间,您可以更改完成效果所需的时间和$.fadeIn()jsfiddle.net/userdude/2TDsq/4
猜你喜欢
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多