0
点赞
收藏
分享

微信扫一扫

jQuery:<2>类与动画

萧让听雪 2022-04-29 阅读 77

当我们学完了选择器就一定要了解一下类和动画,那么什么是类呢?这里可不是指的类与对象的那个类哈,而是一种样式的集合,我们可以使用类将我们的盒子表现得更加好看;而动画呢?其实就是一个过渡效果:

动画

有了类和动画就让我们的页面有了活力,能够动起来,那么这一期我们就来了解类和动画在jQuery里面要如何使用:

1、类的添加、移除、判断、切换函数:

添加类:addClass('类名')、

移除类:removeClass('类名')、

判断是否含有类:hasClass('类名')、反转类,

如果有就删除,没有就添加toggleClass('类名');

 $(this).addClass('bkg').siblings('li').removeClass('bkg')

代码太多,我们就抽出一段来讲解吧,这里的this其实是引起这个响应函数的对象,其实这段代码是从单击响应函数里面抽取出来的,结合上一期,我们为这个li添加了一个名为bkg的类,这个类是自己写的:

.bkg{
            background-color: green;
        }

 当然,你们也可以自己写一个类,还有其他方法用法是一致的,不过如果你想添加更多的类的话,只需要用空格隔开就可以:

$(this).addClass('class1 class2')

 

2、基础动画之随机动画、卷帘动画、淡入动画:

它们的参数大部分是两个,第一个是时长,第二个是回调函数:

显现的延时,一般是左上到右下:

显现:show() 隐藏hide() 切换toggle();

、卷帘门的动画,从上到下:

下滑slideDown() 上滑slideUp() 切换slideToggle()

淡入淡出效果:

淡入fadeIn() 淡出fadeOut() 切换fadeToggle()

fadeTo()这个要注意,意思是淡入到哪一个透明度,第一个参数依然是时长,但是第二个是不是回调函数,而是透明度小数;

这里注意一些传参问题,如果是传整型数据的话,就是毫秒,如果是传字符串有三种:normal、slow、fast,如果传参错误那么就会默认为normal;

            //4.4 利用这个索引来更换bottom的li
            $('.shopping>.bottom>li').eq(idx).show(1000).siblings('li').hide(1000)

同样代码太多,我抽出一段,这里找到的是li,然后选择了索引为idx的那一个,然后设置一个显现动画,时长为1s,在选择兄弟项,就是除了自己以外的同辈的li,然后隐藏,时长也是1s 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0px;
            padding: 0px;
            box-sizing: border-box;
        }
        img{
            width: 100%;
            height: 100%;
            
        }
        .wrap{
            width:520px;
            height:350px;
            float: left;
            border-radius: 4px;
            margin: 200px auto;
            border: 4px solid white;
        }
        body{
            background-color: white;
        }
        .wrap li{
            float: left;
            margin-left: 10px;
            margin-top: 10px;
            list-style: none;
            border:2px solid pink;
            width:160px;
            height:160px;
        }

        .parentbox{
            width: 130px;
            background-color: pink;
            border: 2px solid orange;
            float: left;
        }
        .title{
            width:120px;
            height:30px;
            display: inline-block;
            line-height: 30px;
            text-align: center;
            background-color: aqua;
        }
        .muenson{
            width: 120px;
            border: 2px solid red;
            border-radius: 4px;

            list-style: none;
            margin-top: 5px;
            background-color: aqua;
        }
        .muenson div{
            display: none;
            width:120px;
            height:80px;
            text-align: center;
            color: white;
            background-color: black;
        }
        .exhibitionshow{
            float: left;
            width:310px;
            height:180px;
            background-color: pink;
        }
        .exhibitionshow .left{
            list-style: none;
            float: left;
        }
        .exhibitionshow .left li{
            width: 100px;
            height:30px;
            margin-top: 5px;
            background-color: red;
        }
        .exhibitionshow .left a{
            width: 100%;
            height: 100%;
            text-decoration: none;
            display: inline-block;
            line-height: 30px;
            text-align: center;
            color: black;
        }
        .exhibitionshow .right{
            list-style: none;
            width:180px;
            margin-left: 10px;
            height: 180px;
            float: left;

        }
        .exhibitionshow .right li{
            display: none;
        }
        .exhibitionshow .right li:first-child{
            display: block;
        }

        .shopping{
            width:440px;
            height:250px;
            margin-left: 30px;
            float: left;
            border:4px solid blue;
            background-color: yellow;
        }
        .shopping .top{
            width:440px;
            height:30px;
            

            list-style: none;
        }
        .shopping .top li{
            width:100px;
            height:30px;
            line-height: 30px;
            text-align: center;
            border: 1px solid blue;
            margin-left:5px;
            
            float: left;
        }
        .shopping .bottom{
            list-style: none;

        }
        .shopping .bottom img {
            width:200px;
            height:200px;
            border:4px solid blue;
            margin-top: 10px;
            margin-left: 10px;
            float:left;
        }
        .shopping .bottom li{
            display: none;
            
        }
        .shopping .bottom li:first-child{
            display: block;
        }
        .bkg{
            background-color: green;
        }
    </style>

    <script src="../node_modules/jquery/dist/jquery.js"></script>
</head>
<body>
    <div class="parentbox">
        <ul class="muenbox">
            <li class="muenson">
                <span class="title">标题1</span>
                <div>我是box1</div>
            </li>
            <li class="muenson">
                <span class="title">标题2</span>
                <div>我是box2</div>
            </li>
            <li class="muenson">
                <span class="title">标题3</span>
                <div>我是box3</div>
            </li>
            <li class="muenson">
                <span class="title">标题4</span>
                <div>我是box4</div>
            </li>
            <li class="muenson">
                <span class="title">标题5</span>
                <div>我是box5</div>
            </li>
        </ul>
    </div>

    <div class="exhibitionshow">
        <ul class="left">
            <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>
        <ul class="right">
            <li><img src="./images/tou1.jpg"></li>
            <li><img src="./images/tou2.jpg"></li>
            <li><img src="./images/tou3.jpg"></li>
            <li><img src="./images/tou4.jpg"></li>
            <li><img src="./images/tou5.jpg"></li>
        </ul>
    </div>

    <div class="shopping">
        <ul class="top">
            <li>第一页</li>
            <li>第二页</li>
            <li>第三页</li>
        </ul>
        <ul class="bottom">
            <li>
                <img src="./images/tou1.jpg">
                <img src="./images/tou2.jpg">
            </li>
            <li>
                <img src="./images/tou3.jpg">
                <img src="./images/tou4.jpg">
            </li>
            <li>
                <img src="./images/tou5.jpg">
                <img src="" alt="照片太帅,无法显示">
            </li>
        </ul>
    </div>
    <div class="wrap">
        <ul>
            <li><img src="./images/tou1.jpg" alt=""></li>
            <li><img src="./images/tou2.jpg" alt=""></li>
            <li><img src="./images/tou3.jpg" alt=""></li>
            <li><img src="./images/tou4.jpg" alt=""></li>
            <li><img src="./images/tou5.jpg" alt=""></li>
        </ul>
    </div>
    
</body>
<script>
    $(function(){
        //1.1 设置图片的高亮显示、
        //编写鼠标移入的响应函数
        $('.wrap>ul>li').mouseenter(function(){
            //1.2 将移入的li变为高亮,也就是其他盒子为半透明
            $($(this).css('opacity',1)).siblings('li').css('opacity',0.4)
        })

        //1.3 鼠标离开事件
        $('.wrap>ul>li').mouseleave(function(){
            //1.4 全部li变为高亮
            $('.wrap>ul').find('li').css('opacity',1)
        })

        //2.1 实现手风琴案例
        $('.parentbox>.muenbox>.muenson').click(function(){
            $(this).children('div').css('display','block').parent().siblings('li').children('div').css('display','none')
        });
        //3.1 为左边的li创建点击响应函数
        $('.exhibitionshow>.left>li').click(function(){
            //切换图片,获取到索引然后运到右边的li上
            var idx = $(this).index()
            
            $('.exhibitionshow>.right>li').eq(idx).slideDown().siblings('li').slideUp()
        });
        $('.exhibitionshow>.left>li').mouseenter(function(){
            $(this).css('backgroundColor','skyblue')
        });
        $('.exhibitionshow>.left>li').mouseleave(function(){
            $(this).css('backgroundColor','red')
        });

        //4.1 为商品展示添加类
        //为top的li添加鼠标移入和移出时间
        $('.shopping>.top>li').mouseenter(function(){
            //4.2 为该li添加类,但是其兄弟元素移除类
            $(this).addClass('bkg').siblings('li').removeClass('bkg')
            //4.3 获取到该li的索引
            var idx = $(this).index()
            //4.4 利用这个索引来更换bottom的li
            $('.shopping>.bottom>li').eq(idx).show(1000).siblings('li').hide(1000)
        });
    })
</script>
</html>

 好了,代码很长吧,快去试试,虽然繁琐,但是很简单;

举报

相关推荐

jQuery事件与动画

jQuery事件 jQuery动画

java--jQuery4事件与动画

jquery基本动画

jQuery动画特效

jQuery 动画&事件

0 条评论