【问题标题】:Can anyone tell me whats wrong with this piece of jquery controlling animating tab谁能告诉我这段 jquery 控制动画选项卡有什么问题
【发布时间】:2015-12-19 16:45:27
【问题描述】:

我正在尝试创建一个用于动画和移动容器位置的选项卡。代码的第一部分完美地将选项卡移动到 0% 的位置,但是,第二部分没有,我不知道为什么。我不是 jquery 方面的专家,这段代码改编自我在这个网站上找到的代码。来自 jquery 向导的任何帮助都会有所帮助。

谢谢

<script>
        $(document).ready(function(){
            $(".seefullscreentab").click(function(){
                if($(".seefullscreentab a").hasClass('opentab')){
                    $(".scrollpage-container").animate({ 'marginTop': '0%'}, 500);

                    $(".seefullscreentab a").toggle();

                } else {
                    $(".scrollpage-container").animate({ 'marginTop': '-15%'}, 500);
                    $(".seefullscreentab a").addClass('opentab');
                }   
            });
        });
    </script>

违规行似乎是:

$(".scrollpage-container").animate({ 'marginTop': '-15%'}, 500);

如果我去开发者工具并实际输入 marginTop 为'-15%'(它是原始的起始位置),它完美地工作。由于某种原因,jquery 不会把它移到那里。

请帮忙!

【问题讨论】:

  • 建议您创建一个复制问题的演示。页面中是否有多个.seefullscreentab a?您是否打算寻找特定的?未知数太多,我们无能为力
  • 只有一个“.seefullscreentab”,它是一个标签,它的类 opentab 和 closetab 包含在一个 div 中。我在页面上有其他人可以使用此 if else 语句执行类似的功能,但无法使此语句正常工作。我知道这很模糊。如果我无法解决它,可能必须创建一个演示。感谢收看。
  • 添加了一个测试,这样您就可以在以下链接中看到我正在尝试做的事情:the3rdobject.com/test-site/index.html - 顶部选项卡运行良好,但它正在执行功能略有不同。底部选项卡是我想关闭到其原始位置的选项卡,它仅在当前打开。请帮忙 - 我的 jquery 没有达到标准!非常感谢

标签: jquery click jquery-animate toggle


【解决方案1】:

你有一个 if/else 条件语句。 JS 的工作方式是您的代码将触发此代码的一个分支,但不会触发另一个分支。这就是为什么一半有效而一半无效的原因。

我可以看到您正在尝试做什么 - 通过条件语句启用切换,但这不是它的工作原理。 jQuery 有几个属性叫做.toggle().slideDown().slideToggle(),你应该看看。它们都以类似的方式工作。

我尝试修改您的代码以使用 slideToggle。这可能不是您想要实现的目标,但它会向您展示构建代码的正确方法:

$('.seefullscreentab').click(function() {
  // This would part would toggle the tab closed
  $('.scrollpage-container').slideToggle( 500 , function() {
    // This part would move the container's margin after it's closed
    // Put the original margin in CSS and put override here
    $('.scrollpage-container').css('marginTop': '0%');
  });
});

【讨论】:

  • 您好。我明白你在说什么,但我确实有 if else 语句在其他地方完美工作,除了打开和关闭选项卡之外,选项卡上的措辞也会切换。我尝试让它与 slideToggle 一起工作,但还没有任何乐趣。将尝试构建一个测试,以便您可以看到我想要实现的目标。也许这会更有帮助。再次感谢。
  • 您好,添加了一个测试,因此您可以在以下链接中看到我正在尝试执行的操作:the3rdobject.com/test-site/index.html - 顶部选项卡运行良好,但执行功能略有不同。底部标签是我想关闭到它的原始位置,它只在当前打开。请帮忙 - 我的 jquery 没有达到标准!非常感谢
  • 您是否要让底部标签出现在整个屏幕的顶部?
猜你喜欢
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 2017-12-11
  • 2011-01-07
  • 2018-05-15
  • 2011-04-08
相关资源
最近更新 更多