JQuery - 切换类/添加类/删除类

2023-12-24

我有以下代码来创建顶部滑动管理面板,该面板将从页面的最顶部显示。单击按钮“#tp-button2”即可激活该滑动面板。

不过,我想再添加一个滑动面板并将其命名为#toppanel2。

Behavior

tp-button2:单击时,它将显示或隐藏顶板,如果顶板2为“显示”,则在滑出顶板之前将其滑回原位

tp-button3:与上面相同的行为,但适用于 toppanel2

现在的情况:我正在使用toggleClass,这对于1个面板来说很容易,因为它可以关闭和关闭,但我不确定实现上述目标的算法,并且我已经尝试了很长的方法,包括addClass和removeClass,但它不起作用,因为删除类不起作用。

这就是我用于单个切换类的内容

原始CSS

#tp-button2,tp-button3 {
}
.toppanel {
height: 150px ;
top:-150px; 
background-color: #FFFFFF !important;
position: '.$dimensionposition.' !important;
}
.toppanel2 {
height: 75px ;
top:-75px;
background-color: #F1F1F1 !important;
position: absolute !important;
}

.show {top:0px}
.tp-relative {position: relative;padding-bottom: 150px;}
.tp-relative2 {position: relative;padding-bottom: 75px;}
</style>

原始 JavaScript

var $j = jQuery.noConflict();

$j(function() {
    $j( "#tp-button" ).click(function(){
    $j(".toppanel").toggleClass("show", 900, "easeOutBounce");
    $j("#tp-relativeblock").toggleClass("tp-relative", 900, "easeOutBounce");
    });
});
</script>

我尝试过这样的事情

var $j = jQuery.noConflict();


$j(function() {


$j("body").on("click", "#tp-button2", function(){

    if ($j("#toppanel").hasClass("show")) {
    alert("tp-button2 remove class");
    $j("#toppanel").removeClass("show", 900);
    $j("#tp-relativeblock").removeClass("tp-relative", 900);
} else {
    alert("tp-button2 addClass");
    $j("#toppanel2").removeClass("show", 900).delay(900).queue($j("#tp-relativeblock").addClass("tp-relative", 900));

    $j("#tp-relativeblock").removeClass("tp-relative2", 900).delay(900).queue($j("#toppanel").addClass("show", 900));

}

});


$j("body").on("click", "#tp-button3", function(){
if ($j("#toppanel2").hasClass("show")) {
    alert("tp-button3 removeClass");
    $j("#toppanel2").removeClass("show", 900);
    $j("#tp-relativeblock").removeClass("tp-relative2", 900);

} else {
    // Here i attempt to just bring down panel 2 without closing panel 1 to see whether there's code above that's wrong but it's not working too.
    alert("tp-button3 addClass");
    $j("#tp-relativeblock").addClass("tp-relative2", 900);
    $j("#toppanel2").addClass("show", 900)

}

});

这就是我身上的东西

<div id="tp-button"><i class="'.$iconstop.'"></i></div>
<div id="toppanel" class="toppanel">
<div id="tp-container">
<div class="tp-s1">
THIS IS PANEL 1 COLUMN 1
</div>
<div class="tp-s2">
THIS IS PANEL 1 COLUMN 2
</div>
<div class="tp-s3">
THIS IS PANEL 1 COLUMN 3
</div>
<div class="tp-s4">
THIS IS PANEL 1 COLUMN 3        
</div>
</div>
</div>

<div id="toppanel2" class="toppanel2">
<div id="tp-container">
<div class="tp-s1">
PANEL 2
</div>
<div class="tp-s2">
PANEL 2
</div>
<div class="tp-s3">
PANEL 2
</div>
<div class="tp-s4">
PANEL 2
</div>
</div>
</div>
<div id="tp-relativeblock"></div>

我了解 addClass 和removeClass 及其作用,但有时removeClass 不会从 tp-relativeblock 中删除 tp-relative,因此它不会移回空间。 单击按钮2:

顶板向下滑动Success

相对块滑动Success

单击第二个按钮:

顶部面板滑动最多 0pxSuccess

从 #tp-relativeblock 中删除 tp-relativefailed

点击按钮3:

什么都没发生

Button2 也被禁用

我对 javascript 和 jquery 很熟悉,所以我会感谢我能提供的所有帮助来实现这一目标。

我的目标是面板 1 显示“登录网站”,面板 2 显示“注册网站”

提前谢谢您!


这是我用来添加和删除类的 jQuery

To add:

$("#some-id").toggleClass('class-name', 'add');

去除:

$("#some-id").toggleClass('class-name', 'remove');

In 这把小提琴 http://jsfiddle.net/benPearce/t6bQb/2toggleClass 用于触发css动画

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery - 切换类/添加类/删除类 的相关文章

随机推荐

  • 找不到模块“vuetify/lib/framework”的声明文件

    当我执行命令时npm run serve出现上述错误 2 21 Could not find a declaration file for module vuetify lib framework C Users valut source
  • 最终启动顺序错误 - STM32L476 的 Eclipse System Workbench 调试

    我正在尝试调试和运行 STM32L476 的简单汇编代码 我已经设置了 Eclipse Oxygen 在 Eclipse 中安装了最新版本的 System Workbench 插件并安装了 ST Link 驱动程序 IDE 成功构建了程序
  • Java API 找出编译类文件的 JDK 版本?

    是否有任何 Java API 可以找出编译类文件的 JDK 版本 当然 有 javap 工具可以查找主要版本 如中提到的here https stackoverflow com questions 1096148 how to check
  • Android:加速度计错误检测

    我有一个代码片段来检测加速度计的运动 有时它可以通过正确检测轻微的运动来工作 但有时当我保持设备空闲时它也会检测到运动 Android 上的内置加速度计检测是否存在问题 我使用 HTC G 1 设备 我的代码片段如下 如何解决该问题 以便我
  • 使用 Kdbg 调试汇编代码

    我有一个项目 其中包含一份 c C 源代码和一份 S 汇编源代码 编译和链接后 有没有办法使用 Kdbg 调试 S 代码 我正在从 c 文件调用一个 S 函数 但 Kdbg 中没有加载任何代码 在源中添加 file 指令 例如 file s
  • 如何使用 pyspark 对 RDD 中的值进行分组和计数以返回一个小摘要?

    一些示例数据 new data name Tom subject maths exam score 85 name Tom subject science exam score 55 name Tom subject history exa
  • 似乎无法访问 animate.css

    所以我做了 npm install animate css save 安装成功了 我可以在我的node modules我希望能够在我的 elixir phoenix react 项目中使用 animate css 我只是不确定在哪里导入 需
  • HTML/CSS div 未在页面顶部对齐

    抱歉 这个问题似乎是重复的 但他们都没有解决我的问题 所有边距 边框和内边距设置均设置为 0px 主页面div的margin left和margin right两边都设置为15px 至少我看不到任何地方我忘记将其中之一设置为 0px 由于某
  • EF Core 2.0 OwnsOne 列前缀

    使用 OwnsOne 映射复杂类型时 sql 列名称以属性名称为前缀 是否可以在映射中指定前缀名称 这是我的映射 e OwnsOne x gt x Attributes cb gt cb OwnsOne a gt a Supplier 我希
  • tostring() 被隐式调用...如何?

    在下面的代码中 如何toString 是隐式调用的 class Payload private int weight public Payload int w weight w public void setWeight int w wei
  • h2数据库的jdbc连接字符串是什么?

    我正在尝试连接到本地计算机上的 h2 数据库以创建 sql DataSource 对象 我正在运行 Windows 在定义项目 app properties 文件中的数据文件的路径时遇到一些问题 假设本地目录数据文件的路径是 D proje
  • 格式错误的数组文字 - PostgreSQL

    我想将数组从 jsonb 字段复制到 PostgreSQL 数组列 CREATE TABLE survey results id integer NOT NULL areas text raw jsonb DEFAULT jsonb INS
  • ggplot 图例中的 Unicode 字符

    我正在尝试使用 R 中的 ggplot2 绘制一些图表 并使用 unicode 字符 例如日语 标记图例 以下是我的代码 ggplot mtcars aes x mpg y wt colour geom line But I end up
  • 使用 for 循环附加 onclick 方法

    我将 onclick 事件附加到我动态创建的元素中 我正在使用下面的代码 这只是重要的部分 Test prototype Show function contents for i 0 i lt contents length 1 i var
  • ksoap2 问题 java.net.ConnectException

    我正在使用 kSoap2 访问肥皂网络服务 我正进入 状态java net connectException执行以下行时 androidHttpTransport call Constants SOAP ACTION GET METHOD
  • 无效的“Podfile”文件:未定义的方法“存在?”对于文件:类

    在 Xcode 项目中安装 pod 时 我遇到如下 Podfile 问题 Invalid Podfile文件 未定义的方法 存在吗 对于文件 类 我确实尝试过更新 pod 版本brew upgrade cocoapods并点击以下链接 ht
  • CSS calc() 的边框宽度?

    我可以将 calc 与 border width 一起使用吗 我希望以下 CSS 能够工作 my element border left width calc 10 10px border right width calc 10 20px
  • 浮点型或双精度型特殊值

    我有可能为 空 的双精度 或浮点 变量 如不持有有效值 如何使用内置类型 float 和 double 来表示这种情况 一种选择是具有浮点数和布尔值的包装器 但这是行不通的 因为我的库具有存储双精度数的容器 而不是存储双精度数的对象 另一种
  • cout 的 << 运算符在运算符优先级方面如何工作? [复制]

    这个问题在这里已经有答案了 可能的重复 意外的求值顺序 编译器错误 https stackoverflow com questions 5214611 unexpected order of evaluation compiler bug
  • JQuery - 切换类/添加类/删除类

    我有以下代码来创建顶部滑动管理面板 该面板将从页面的最顶部显示 单击按钮 tp button2 即可激活该滑动面板 不过 我想再添加一个滑动面板并将其命名为 toppanel2 Behavior tp button2 单击时 它将显示或隐藏