欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery实现动态效果

程序员文章站 2022-05-28 21:52:23
...

写在前面

使用jQuery简直不要太舒服啊,有人说jQuery过时了,没必要学。但是,你不学你就一直是过时的,过时的技术你都不学都不了解何谈新型技术?不要好高骛远,一步一步的来吧,很多事情都是水到渠成的,急不得。好好加油鸭!

今天学习了,jQuery效果。主要是让元素实现显示隐藏、上拉下拉、淡入淡出的这些动态效果,反正都是一些jQuery对象方法的使用,很好用的。先来梳理知识点吧。

 

jQuery效果

再开始之前,先补充一个小的知识点 —— 动画排队

防止动画或效果排队现象,就是做了一个动画,如果频繁的去触发多个元素同一个事件,动画效果会排队实现,一个动画完成后才会执行下一个,知道执行完所有触发的动画。举个例子:给每5张图片添加鼠标滑过时实现下拉滑动的效果,当鼠标从第一张快速滑到最后一张时,动画会依次执行,鼠标都滑过完毕了,图片下拉效果还没有完成,并不是按照我们鼠标经过时立马执行。这就是动画排队效果。为了避免这样的bug,我们都会在动画前让他停止动画排队——stop()。

下面所有的方法都有统一相同的三个参数

a [speed]:显示和隐藏的速度( 时间)slow、normal、 fast 也可以设置数字时间(ms)

b [easing]:时间的快慢  "linear" 和 "swing  一般不设置 使用默认值swipe

c [fn]:回调函数,在动画完成时执行的函数

 jQuery实现动态效果

1. 显示、隐藏、切换显示隐藏

hide()   显示元素

show()   隐藏元素

toggle()  切换元素显示和隐藏的状态

这三个方法一般不用参数,直接调用即可。

    <section>
        <button class="show">显示</button>
        <button class="hide">隐藏</button>
        <button class="toggle">切换</button>
        <div class="div1">div1</div>
    </section>
            $(".show").click(function () {
                $(".div1").show();
            });
            $(".hide").click(function () {
                $(".div1").hide();
            });
            $(".toggle").click(function () {
                $(".div1").stop().toggle();
            });

2. 下拉滑动、上拉滑动、切换滑动

slideDown()  下拉滑动

slidUp()  上拉滑动

slideToggle() 切换滑动

这三个通常会设置speed的值,就是设置动画下拉上拉的时间。

    <section>
        <button class="slidedown">下拉</button>
        <button class="slideup">上拉</button>
        <button class="slidetoggle">切换</button>
        <div class="div3">div3</div>
    </section>
            $(".slidedown").click(function () {
                $(".div3").stop().slideDown(2000);
            });
            $(".slideup").click(function () {
                $(".div3").stop().slideUp(2000);
            });
            $(".slidetoggle").click(function () {
                $(".div3").stop().slideToggle(2000);
            });

3. 淡入、淡出、切换效果、设置透明度

fadeIn()  淡入效果

fadeOut()  淡出效果

fadeToggle() 切换效果

fadeTo(speed,opacity)    设置透明度:这里多了一个opacity的参数,  speed 和opacity这俩参数必须写

常用的参数依然是speed

    <section>
        <button class="fadein">淡入</button>
        <button class="fadeout">淡出</button>
        <button class="fadetoggle">切换</button>
        <button class="fadeto">更改透明度</button>
        <div class="div2">div2</div>
    </section>
            $(".fadein").click(function () {
                $(".div2").stop().fadeIn(1000); // 1s完成淡入效果
            });
            $(".fadeout").click(function () {
                $(".div2").stop().fadeOut(1000);
            });
            $(".fadetoggle").click(function () {
                $(".div2").stop().fadeToggle(1000);
            });
            // fadeTo()多了一个opacity的参数  speed 和opacity这俩参数必须写
            $(".fadeto").click(function () {
                $(".div2").stop().fadeTo(1000, 0.5); // 1s内透明度为一半
            });

4. 自定义效果 —— 动画效果

animate() 动画

多了一个params参数:一组包含作为动画属性和终值的样式属性和及其值的集合。

简单来说就是:用对象的形式存储数据

    <section>
        <button class="jquery-animate1">点击移动200</button>
        <button class="jquery-animate2">回原位</button>
        <div class="ja">动画移动</div>
    </section>
            $(".jquery-animate1").click(function () {
                $(".ja").stop().animate({
                    left: 200
                }, 500)
            })
            $(".jquery-animate2").click(function () {
                $(".ja").stop().animate({
                    left: 0
                }, 500)
            })

 

上面小案例的效果图哈。

jQuery实现动态效果

 

效果实际应用 —— 高亮显示

当鼠标经过图片时,突出高亮显示。

效果如下:

jQuery实现动态效果

核心:用fadeTo()方法设置元素透明度。

你万万想不到的是,我们只用写两行jQuery代码就能实现。

        $(function () {
            // 鼠标经过时,图片高亮显示
            $(".wrap li").mouseenter(function () {
                $(this).stop().fadeTo(100, 1).siblings("li").stop().fadeTo(100, 0.5);
            })
        })

结构、样式


    <style>
        body {
            background-color: #000;
        }

        .wrap {
            margin: 100px auto 0;
            width: 630px;
            padding: 10px 0 0 10px;
            background: #000;
            overflow: hidden;
            border: 1px solid #fff;
        }

        .wrap ul {
            margin: 0;
            padding: 0;
            list-style: none;
            overflow: hidden;
        }

        .wrap li {
            float: left;
            margin: 0 10px 10px 0;
        }

        .img {
            display: block;
            border: 0;
        }
    </style>

<div class="wrap">
        <ul>
            <li>
                <a href="javascript:;">
                    <img src="images/01.jpg" alt="">
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="images/02.jpg" alt="">
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="images/03.jpg" alt="">
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="images/04.jpg" alt="">
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="images/05.jpg" alt="">
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="images/06.jpg" alt="">
                </a>
            </li>
        </ul>
    </div>

 

 

 

ok,今天就结束拉。

明天又是美好的一天,树叶都长大了。