我可以扩展我的div,但我该如何缩小它?(代码片段)

author author     2023-05-13     813

关键词:

我有一系列的div,当点击时,会在每个div下面展开一个div。单击另一个div时,将关闭任何先前展开的div,并展开单击的div下方的div。这工作非常好。我的问题是点击已经打开的div应该缩小它下面的div,但事实并非如此。我的代码基于这个例子... https://wpbeaches.com/create-expandcollapse-faq-accordion-collapse-click/这个例子很有效 - 点击任何div关闭任何其他div,包括它自己的div,如果它已经打开。我的代码运行良好,但如果已经打开,单击div不会关闭它下面的div。

CSS:

        /* Style the element that is used to open and close the accordion class */
        div.accordion 
            background-color: #fff;
            color: #444;
            cursor: pointer;
            padding: 0px;
            width: 100%;
            text-align: left;
            border: none;
            outline: none;
            transition: 0.4s;
            margin-bottom:10px;
            opacity: 0.70;
            filter: alpha(opacity=70);
        

        /* Add a background color to the accordion if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */
        div.accordion.active, div.accordion:hover 
            background: rgb(255,255,255);
            background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(232,231,222,1) 50%, rgba(255,255,255,1) 100%);
            opacity: 1;
            filter: alpha(opacity=100);
        

        /* Style the element that is used for the panel class */

        div.panel 
            padding: 0 18px;
            background-color: white;
            max-height: 0;
            overflow: hidden;
            transition: 0.4s ease-in-out;
            opacity: 0;
            margin-bottom:10px;
        

        div.panel.show 
            opacity: 1;
            max-height: 500px; /* Whatever you like, as long as its more than the height of the content (on all screen sizes) */
        

JAVASCRIPT:

    <script>
        document.addEventListener("DOMContentLoaded", function(event)  
        var acc = document.getElementsByClassName("accordion");
        var panel = document.getElementsByClassName('panel');

        for (var i = 0; i < acc.length; i++) 
            acc[i].onclick = function() 
                var setClasses = !this.classList.contains('active');
                setClass(acc, 'active', 'remove');
                setClass(panel, 'show', 'remove');

                if (setClasses) 
                    this.classList.toggle("active");
                    this.nextElementSibling.classList.toggle("show");
                
            
        

        function setClass(els, className, fnName) 
            for (var i = 0; i < els.length; i++) 
                els[i].classList[fnName](className);
            
        

        );
    </script>

HTML:

我的html就像上面wpbeaches.com示例中的代码一样。

答案

在您的else情况下添加删除逻辑或删除if条件,因为您正在使用切换功能。在您的情况下,切换的工作方式与add方法类似。只需检查代码即可

            if (setClasses) 
                this.classList.add("active");
                this.nextElementSibling.classList.add("show");
             else 
                this.classList.remove("active");
                this.nextElementSibling.classList.remove("show");
            
另一答案

我所理解的是点击回答链接不会关闭问题,但如果我们点击已经打开的问题,它将关闭相应的答案。这是因为你只对onmanian“p”元素应用了onClick函数,而不是在面板“div”元素上。

您可以将1个公共类应用于accordion和panel元素,并在该类上应用onCLick函数。

acc[i].onclick = function() 

如何缩小 chrome 扩展的弹出窗口

...:某些扩展程序的弹出窗口不能很好地融入页面。如果我可以缩小弹出窗口,我可以正常使用它,但没有明显的方法可以做到这一点。示例截图:您可以看到弹出窗口延伸到屏幕可见部分的下方。底部有一个按钮,上面写着“记... 查看详情

如何使用 Animate 转到 Div

...s按钮时,用户转到#goToDiv。但我想要这个动画。例如,它可以像传递传递一样。我该如何为此使用动画 查看详情

如何扩展按钮的宽度以填充 div 的宽度

...2015-09-2108:52:40【问题描述】:我发现这个很棒的应用程序可以让我完全按照我想要的方式选择我的按钮并使用CSS将其复制到我的代码中:http://livetools.uiparade.com/button-builder.html#但我希望我的按钮从div的 查看详情

如何在visualstudio2010中禁用ctrl+滚动?(代码片段)

...导致文本大小增加或减小的状态。使用页面上的ctrl+scroll可以从此状态恢复。另一答案我不相信有一种方法可以通过暴露的选项来完成编辑器。然而,视觉工作室平台开发人员NoahRichards编写了一个禁用鼠标滚动缩放的VisualStudio扩... 查看详情

如何更改 html 或 javascript 代码,所以当我单击 div 时,即使它不起作用。我该如何解决?

...发布时间】:2020-03-0617:47:38【问题描述】:所以,我想在我的页面中为菜单栏编写js代码,但它不起作用首先,我认为我在div类中犯了一些错误,例如di 查看详情

使用按钮对齐iframe(代码片段)

...按钮和iframe。你能帮助我吗?答案社交div上的以下CSS样式可以实现我认为你要求的:#socialposition:absolute;bottom:0;min-height:190px;它会给你这个输出: 查看详情

reportexecution2005.asmx,在哪个包/扩展中可以找到它?(代码片段)

我正在尝试升级旧的ASP.Net程序。我已经开始运行,但当我尝试运行报告时,我被告知无法找到ReportExecution2005.asmx;我明白这是因为它尚未安装,但我找不到,尽管我最好的谷歌搜索,如何以及从何处安装它。有谁知道如何找到Repo... 查看详情

选择时 React Native TextInput 缩小,我该如何停止它?

】选择时ReactNativeTextInput缩小,我该如何停止它?【英文标题】:ReactNativeTextInputshrinkswhenselected,howcanIstopit?【发布时间】:2021-05-2510:49:23【问题描述】:我是ReactNative的新手,我目前正在开发一个应用程序,在登录屏幕上,当我... 查看详情

sbt插件-如何确保我的settingkey在其他一切之前解决?(代码片段)

...一个是:myLogLevel:settingKey[Level.Value]。你的插件的消费者可以将它设置为build.sbt中的任何内容,你可以在你的设置中设置一个默认值:myLogLevel:=Level.Info。然后,你有第二个设置:myLog:settingKey[Logger]这不会暴露给消费者,你可以将... 查看详情

如何进行 uibutton 缩小然后交叉模糊?

...9:32【问题描述】:我已经实现了一个UIButton动画,现在它可以缩放,但我也想在UIButton消失时交叉淡入淡出。这是我的按钮动画示例代码。(void)centerButtonAnimationCAKeyframeAnimation*centerZ 查看详情

如何扩展cpu绑定的twisted应用程序?(代码片段)

...?如果有的话,通常会使用哪些工具?答案如果你认为你可以在应用程序面前抛出uwsgi,我认为它非常接近于无共享。因此,您可以运行该程序的多个实例,并从每个实例获得核心的性能。对于如何运行多个实例,有几个非常明... 查看详情

如何使chrome扩展程序窗口始终位于顶部(代码片段)

...方案,目前无法保持弹出窗口始终处于活动状态。也许它可以在打开弹出窗口时创建一个新窗口,就像这样。在popup.html文件中,您必须加载此脚本。constpopupWindow=window.open(chrome.extension.getURL("popup_window.html"),"exampleName","width=300,heigh... 查看详情

下面的代码在 Angular 8 中运行。但我需要在 Angular 6 中执行它。我该如何实现呢?

】下面的代码在Angular8中运行。但我需要在Angular6中执行它。我该如何实现呢?【英文标题】:BelowcodeisworkinginAngular8.ButIneedtoexecuteitinAngular6.Howcaniachievethis?【发布时间】:2020-04-1221:02:50【问题描述】:此代码按预期在Angular8中运行... 查看详情

我的挤压功能没有按预期工作,我该怎么做才能修复这个功能?(代码片段)

...历数组1并将数组中的第二个数组嵌入第一个,这样它就可以将数组1中的一个字符与数组2的整数进行比较,这样它就可以了可以正确擦除 查看详情

是啥影响了 IOS 应用程序中的资产大小,我该如何缩小它?

...iOS应用程序,它使用资产目录来存储71MB的图像。我只在我的资产目录中包含了@3x图像,以尝试 查看详情

Chrome 扩展:插入固定 div 作为 UI

...。它将覆盖您当前正在查看的页面。我担心的是我希望它可以在任何页面上工作而不改变它(除了插入我的固定div),但我不知道这是否可以通过我这样做的方式实现。目前,该按钮不会出现,而且我在让div出现时遇到了很多麻 查看详情

CSS 扩展和扩展

】CSS扩展和扩展【英文标题】:CSSscaleinandoutbreaking【发布时间】:2014-09-2314:07:51【问题描述】:我有一个DIV,我想在单击按钮时缩小它,并在单击DIV本身时缩小它。我的比例部分工作得很好,但是当我尝试删除fadeIn类时,当我扩... 查看详情

缩小和变换 UIButton

...间】:2015-01-0408:16:24【问题描述】:我试图在单击时改变我的UIButton,并且我希望它同时缩小。我试过下面的代码,它确实向左变换,但我不知道如何缩小按钮。我怎样才能缩小和转换UIButton。@IBActionfuncjoinCircleButton(sender:AnyObject)... 查看详情