zoukankan      html  css  js  c++  java
  • jQuery碎语(3) 动画特效

    5、动画特效

    ● 自制折叠内容块

    内容块如下

        <div class="module">
    
            <div class="caption">
    
                <span>标题</span>
    
                <img src="rollup.gif" alt="rollup" title="rolls up this module"/>
    
            </div>
    
            <div class="body">
    
                近日,《体坛周报》记者马德兴在接受天津体育频道《体坛新视野》节目采访时表示自己对恒大[微博]的情况比较担忧,恒大统治力比上赛季下降了很多,恒大外援存在位置重叠的问题,客场不输给西悉尼流浪者就是一个可以接受的结果。该节目称恒大联赛3连胜胜之不武,恒大的惹不起不过尔尔,恒大失去了对其它球队压倒性的优势,能力下降是恒大霸主地位有所动摇的根源所在。
    
            </div>
    
        </div>

    给img元素绑定点击事件。

            $(function() {
    
                $('div.caption img').click(function () {
    
                    //先找到img的父级元素,再找该父级元素的子元素
    
                    var $body = $(this).closest('div.module').find('div.body');
    
                    if ($body.is(':hidden')) {
    
                        $body.show();
    
                    } else {
    
                        $body.hide();
    
                    }
    
                });
    
            });
    

    1

     

    切换元素的显示状态,还可以用toggle方法。

            $(function() {
    
                $('div.caption img').click(function () {
    
                    $(this).closest('div.module').find('div.body').toggle();
    
                });
    
            });

    以上是没有动画效果的,有时候感觉会很唐突。实际上,show,hide,toggle方法都可以有动画效果。比如:

            $(function() {
    
                $('div.caption img').click(function () {
    
                    $(this).closest('div.module').find('div.body').toggle('slow');
    
                });
    
            });

    又比如:

            $(function() {
    
                $('div.caption img').click(function () {
    
                    $(this).closest('div.module').find('div.body').toggle('slow', function() {
    
                        $(this).closest('div.module').toggleClass('rolledup', $(this).is(':hidden'))
    
                    });
    
                });
    
            });    

    ● 使元素淡入淡出
    fadeIn(speed, callback)       
    fadeOut(speed, callback)
    fadeTo(speed, opacity, callback)

     

    ● 上下滑动元素

    slideDown(speed, callback)
    slideUp(speed, callback)
    slideToggle(speed, callback)

     

    ● 停止动画

    stop(clearQueue, gotoEnd)

     

    ● 创建自定义动画

    animate(properties, duration, easing, callback)

    $('.classname').animate({opacity:'toggle'},'slow')

     

    如果写一个扩展函数。

    $.fn.fadeToggle = function(speed){
        return this.animate({opacity:'toggle'},'slow');
    }

     

    ● 自定义缩放动画

    $('.classname').each(function(){
        $(this).animate({
            $(this).width() * 2,
            height: $(this).height() * 2
        });
    });

     

    ● 自定义掉落动画

    $('.classname').each(function(){
        $(this)
            .css("position","relative")
            .animate({
                opacity: 0,
                top: $(window).height() - $(this).height() - $(this).position().top
            },'slow',function(){ $(this).hide(); })
    });

     

    ● 自定义消散动画

    $('.classname').each(function(){
        var position = $(this).position();
        $(this)
            .css({
                position: 'absolute',
                top: position.top,
                left:position.left
            })
            .animate({
                opacity: 'hide',
                $(this).width()*5,
                height: $(this).height()*5
                top: position.top - ($(this).height() * 5 / 2),
                left: position.left - ($(this).width() * 5 /2)
            },'normal');
    });

     

    ● 队列中的动画

    //动画插入队列
    $('img').queue('chain', function(){});
    $('img').queue('chain', function(){});
    $('img').queue('chain', function(){});
    $('img').queue('chain', function(){});

    $('button').click(function(){
        $('img').dequeue('chain'); //删除队列中的动画
    })

    cleaeQueue(name)//删除所有未执行的队列中的动画
    delay(duration, name)//为队列中所有未执行的动画添加延迟

     

    参考资料:jQuery实战(第二版)   

     

    jQuery碎语系列包括:

    jQuery碎语(1) 基础、选择要操作的元素、处理DOM元素

    jQuery碎语(2) 事件

    jQuery碎语(3) 动画特效

    jQuery碎语(4) 实用函数

  • 相关阅读:
    PHPExcel读取excel03/07版到数组
    firefox 自定义快捷键
    phpstorm 自定义函数配置
    解决FPDF报错:FPDF error: Not a JPEG file / FPDF error: Not a PNG file
    mysql学习笔记
    定时备份服务器数据库(借助windows任务计划以及mysqldump)
    discuz 注册用户用到的几个表
    phpstorm配置取消掉63342
    discuz random函数
    discuz X3.2邮箱非必填
  • 原文地址:https://www.cnblogs.com/darrenji/p/3924322.html
Copyright © 2011-2022 走看看