当前位置: 首页 > 知识库问答 >
问题:

在屏幕上可见时自动打开手风琴

姚烨
2023-03-14

我试图通过让每个手风琴项目在用户向下滚动页面时自动打开来增强JS手风琴的视觉效果。它们不需要自动关闭。

我使用的手风琴在“点击”时执行2个操作:

  1. 手风琴父'div'元素:类. is-open被应用
  2. 手风琴子'div'内容:
    a.)属性已删除aria-隐藏="true"

我如何实现强制这两个动作在滚动/可见而不是单击时启动?

我的JS知识有限。我不能任意编写JS,但可以理解和操作它。

半工作概念(基于粘性头)-它确实可以执行,但不是实现预期结果的正确方法。


    jQuery(function($) {
      var acdn = $(".bdt-accordion-item");
        $(window).scroll(function() {
            var scroll = $(window).scrollTop();

            if (scroll >= 50) {
                acdn.addClass("bdt-open");
            } else {
                acdn.removeClass("bdt-open");
            }
        });
    });

    jQuery(function($) {
      var con = $(".bdt-accordion-content");
        $(window).scroll(function() {
            var scroll = $(window).scrollTop();

            if (scroll >= 50) {
                document.getElementsByClassName("bdt-accordion-content")[0].setAttribute("aria-hidden", "false");
                document.getElementsByClassName("bdt-accordion-content")[0].removeAttribute("hidden");
            } else {
                document.getElementsByClassName("bdt-accordion-content")[0].setAttribute("aria-hidden", "true");
                document.getElementsByClassName("bdt-accordion-content")[0].setAttribute("hidden");
            }
        });
    });

共有1个答案

孟鸿朗
2023-03-14

这有效。请随时建议如何清理它。

<script type="text/javascript">
  jQuery(function($) {
  var acdn = $("#bdt-accordion-a189677 .bdt-accordion-item");
    $(window).scroll(function() {
    var scroll = $(window).scrollTop();

    if (scroll >= 400) {
        acdn.addClass("bdt-open");
    } else {
        acdn.removeClass("bdt-open");
    }
});
});


jQuery(function($) {
   var con = $("#bdt-accordion-a189677 .bdt-accordion-content");
   $(window).scroll(function() {
    var scroll = $(window).scrollTop();

    if (scroll >= 400) {
        document.getElementsByClassName("bdt-accordion-content")[0].setAttribute("aria-hidden", "false");
        $('#bdt-accordion-a189677 .bdt-accordion-content').attr("hidden",false);
        con.addClass("animated");
        con.addClass("fadeIn");
    } else {
        document.getElementsByClassName("bdt-accordion-content")[0].setAttribute("aria-hidden", "true");
        $('#bdt-accordion-a189677 .bdt-accordion-content').attr("hidden",true);
        con.removeClass("animated");
        con.removeClass("fadeIn");
    }
});
});
 类似资料:
  • 问题内容: 在终端中工作时,我看到了最后一个Shell命令执行输出的历史记录。如果运行vim,我会看到全屏打开的文件。退出vim时,我可以再次看到最后一个shell命令的历史记录。 但是,当我从屏幕上使用vim时。我在退出vim时看到的是刚刚编辑的文件的足迹,而不是最后一个shell命令的历史记录。 我想看看外壳的历史。 我该如何实现这种行为? 我用了: terminal.app和iterm2.a

  • 我试图移动这个图像: 在我的PyGame屏幕上,从右到左再向后,但是随着图像的移动,每隔一秒左右我就会有一点屏幕撕裂,就像这样: 我使用的代码是类似于此的循环: 到目前为止,我已经尝试了以下方法来解决这个问题: 在创建屏幕时使用,,标志,这没有效果,我也调整了更新为(因为使用?)时建议使用此选项) 在GPU和CPU之间拆分内存(我在raspberry pi 2上运行此功能)我尝试过为这两个处理器提

  • 如何强制屏幕在我的应用程序运行时保持活动状态而不是关闭?

  • 实现在竖屏的NavigationController中push一个横屏的UIViewController,模拟器测试兼容5.0、6.0系统。实现程序中手动旋转屏幕的效果。 [Code4App.com]

  • 我正在开发这个Android应用程序,它应该为普通和大屏幕设备使用相同的布局。但是对于所有的屏幕尺寸落入xlarge括号中,我希望系统使用这个Android文档描述的屏幕兼容模式。 本文件明确指出: 默认情况下,当以下情况之一为真时,运行Android 3.2及更高版本的设备的屏幕兼容模式作为可选功能提供给用户: > < li> 您的应用程序已将android:minSdkVersion和andr

  • 问题内容: 我有3个屏幕,可以说, 登录 忘记密码 帮助画面 默认情况下,启动应用程序时将打开“登录”屏幕。单击“忘记密码”按钮时,将显示“忘记密码”屏幕,并且在单击“帮助”链接时将打开“帮助”屏幕。 我可以通过某种方式直接打开“忘记密码”屏幕,而无需执行使用 XCUITest 单击按钮的过程吗? 我建议与通过adb直接打开View的意图相同的内容。 问题答案: 据我所知,您不能使用XCUITes