zoukankan      html  css  js  c++  java
  • jquery动画函数队列

    队列允许一个元素来异步的访问一连串的动作,而不终止程序执行。
    queue    将函数加入、插入匹配元素的队列
    dequeue  执行匹配元素的队列

    queue( [ queueName ], newQueue )
    queueName一个含有队列名的字符串。默认是"Fx",标准的动画队列。
    newQueue一个替换当前函数列队内容的数组。

    queue( [ queueName ], callback( next ) )
    queueName一个含有队列名的字符串。默认是fx,标准的动画队列。
    callback( next )添加到列队的新函数。


    所以:当只传入一个参数时, 它返回并指向第一个匹配元素的队列(将是一个函数数组,队列名默认是fx); 当有两个参数传入时, 第一个参数还是默认为fx的的队列名, 第二个参数又分两种情况, 当第二个参数是一个函数时, 它将在匹配的元素的队列最后添加一个函数. 当第二个参数是一个函数数组时,它将匹配元素的队列用新的一个队列来代替(函数数组).

    1. 当只传入一个参数时, 它返回并指向第一个匹配元素的队列(这是一个函数数组,队列名默认是fx的队列)
    2.当传入两个参数时, 第一个参数为队列名(默认fx),当第二个参数是一个函数时, 它将在匹配的元素的队列最后添加一个函数。
    当第二个参数是一个函数数组时,它将匹配元素的队列用新的一个队列来代替(函数数组)。

    例如

    example1

     $(".tt").click(function () {
                    var $this = this
                    $(this).animate({left:400}).queue(function () {
                        window.setTimeout(function () {
                            $($this).dequeue()
                        }, 2000)
                    }).animate({top:400})
    

     example2

            $(document).ready(function () {
                function next() {
                    $(".main").dequeue("dd")
                }
    
                var _funclist = [
    
                    function () {
                        $(".block1").animate({left:"+=100"}, next)
                    },
                    function (){
                        $(".block1").html("kitty")
                        window.setTimeout(function(){next()},1000)
                    },
                    function () {
                        $(".block2").animate({left:"+=100"}, next)
                    },
                    function (){
                        $(".block2").html("kitty")
                        window.setTimeout(function(){next()},1000)
                    },
                    function () {
                        $(".block3").animate({left:"+=100"}, next)
                    },
                    function (){
                        $(".block3").html("kitty")
                        window.setTimeout(function(){next()},1000)
                    },
                    function () {
                        $(".block4").animate({left:"+=100"}, next)
                    },
                    function (){
                        $(".block4").html("kitty")
                        window.setTimeout(function(){next()},1000)
                    },
                    function () {
                        $(".block5").animate({left:"+=100"}, next)
                    },
                   function(){
                       alert("done")
                   }
                ]//建立函数数组
                $(".main").queue("dd", _funclist)//将函数数组插入匹配元素的的队列dd
    
              $(document).click(function(){
                  next()
              })//执行队列
            })
    

     example3

    js

      $(document).ready(function () {
                function next() {
                    $(".main").dequeue("slidelist")
                }
                var arry = []
                $(".main div").each(function () {
                    var $this = $(this)
                    var k = function () {
                        $this.animate({left:"+=100"},function(){
                            $this.html($this.prevAll().length)
                            next() //回调函数执行队列调出下一个动作
                        })
                    }
                    arry.push(k) //遍历生成函数数组
                })
                $(".main").queue("slidelist", arry)  //将函数数组添加到匹配元素的队列,队列名为slidelist
                
     
     $(document).click(function(){
    	 next() //执行匹配元素的队列
    	 })
            })
    

  • 相关阅读:
    c/c++基础 输入函数/流
    数据库的码/键
    sql plus笔记
    cmd delete oracle related
    CAN总线
    SAR ADC : 逐次逼近寄存器型(SAR)模数转换器(ADC)
    Cortex-M3寄存器等基础知识
    Cortex-M3知识点
    ARM指令和Thumb指令区别
    8051、ARM、AVR
  • 原文地址:https://www.cnblogs.com/breakdown/p/2578233.html
Copyright © 2011-2022 走看看