通过CSS和jquery实现点击切换两种不同布局列表

2025-11-24 04:34:33

1、1. 写好我们要调整布局样式的这部分页面结构。

<a id="check" href="###" class="check-1">切换布局</a>

<!-- 注意这里定义了一个带图标的样式:check-1 ,我们还要在样式表里写它的样式 -->

<div id="clickChange" class="img-list">  <!-- 注意这里要先定义一个class -->

<ul>

<li><a href="#">我是一个小朋友</a></li>

<li><a href="#">我是一个小朋友</a></li>

<li><a href="#">我是一个小朋友</a></li>

<li><a href="#">我是一个小朋友</a></li>

<li><a href="#">我是一个小朋友</a></li>

</ul>

</div>

2、2. 为两种布局写两个不一样的css样式。

假设,第一种样式定义为 img-list,第二种样式定义为 list。这时候,我们需要在样式表中,先写其中一种样式。比如:

/* 先定义一种样式 */

.img-list ul li{

width: 200px;

height: 200px;

background: #ff0;

display: block;

float: left;

margin: 10px;

}

写好第一种样式后,我们利用css的元素继承方法,写第二种样式。

/* 定义另一种样式 */

.list ul li{

width: 400px;

height: 100px;

background: #f00;

display: block;

float: left;

margin: 10px;

}

这时候,我们就有了两套样式。

<写更复杂的样式在这里意义不大,大家能看出区别就好。>

我们需要要给那个切换图标写两个样式:

<style>

.check-1,.check-2{

width:16px;

height:16px;

background:(check1.gif) center center no-repeat ;

}

.check-2{

background:(check2.gif) center center no-repeat ;

}

</style>

这里写的比较简单暴力,做两个不一样的图标做背景。

3、3. 使用jquery来完成点击切换。

我们知道,jQuery可以对样式表的类进行操作:类样式函数

addClass() 为元素添加类样式

removeClass() 将元素的类样式移除

toggleClass() 样式的切换;有->无,无->有。

在这里,我们就使用toggleClass() 函数。

<script>

$("#check").click(function(){

// 定义 id为 check 的a标签的click事件,鼠标点击这个a标签执行这段程序。

$("#clickChange").toggleClass("list");

// 查找 id为 clickChange的容器,给它增加一个新的class:list。我们原来在页面结构代码里写的  class="img-list",会变成: class="img-list list",这时,我们就完成了对页面布局样式的覆盖。

$(".check-1").toggleClass("check-2");

// 查找到类名为 check-1的容器,这里是将鼠标点击的a标签class在 “check-1”和“check-2”之间切换。

});

</script>

到此时,我们就完成了全部代码,可以测试了。

----------------重要提醒:

别忘了在<head></head>之间,引用jQuery文件,路径自己修改。

<script type="text/javascript" src="jQuery.js"></script>

---------------


4、4.全部代码如下:

<style>

/* 先定义一种样式 */

.img-list ul li{

width: 200px;

height: 200px;

background: #ff0;

display: block;

float: left;

margin: 10px;

}

/* 定义另一种样式 */

.list ul li{

width: 400px;

height: 100px;

background: #f00;

display: block;

float: left;

margin: 10px;

}

.check-1,.check-2{

width:16px;

height:16px;

background:(check1.gif) center center no-repeat ;

}

.check-2{

background:(check2.gif) center center no-repeat ;

}

</style>

<script>

$("#check").click(function(){

        $("#clickChange").toggleClass("list");  

$(".check-1").toggleClass("check-2"); 

});

</script>

5、5.代码运行效果如图:

通过CSS和jquery实现点击切换两种不同布局列表

通过CSS和jquery实现点击切换两种不同布局列表

1、toggleClass()函数有个小技巧:

当我们使用id名进行查找后,将函数值赋值为“a”时,,在每次点击时,它会在" " 和 ”a”之间进行切换。

当我们使用class类名(如“b”)查找后,将函数值赋值为“a”时,在每次点击时,它就会将我们查找的“a”和“b”之间来回切换。

2、扩展学习一下:感兴趣的朋友可以将下面代码复制到 <body></body>之间,运行测试一下看看效果。有助于对上述三个函数的理解。

<style>

div{

width: 200px;

height: 200px;

background-color: #f00;

font-size: 14px;

text-align: center;

}

.a{

background:#9FB3F3;

border-radius: 50%;

}

.b{

border: 2px dashed #9F2527;

opacity: 0.6;

}

.c{

background: #f00;

color: #fff;

}

</style>

<button id="btn1">给div增加a,b两个样式</button>

<button id="btn2">取消透明度b样式</button>

<button id="btn3">样式切换</button>

<hr>

<div>这是个div容器</div>

<h1>建党100周年啦!</h1>

<script>

$("#btn1").click(function(){

$("div").addClass("a b");

});

$("#btn2").click(function(){

$("div").removeClass("b");

});

$("#btn3").click(function(){

$("h1").toggleClass("c");

});

</script>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢