zoukankan      html  css  js  c++  java
  • 《锋利的jQuery》第四章(二)

    1、show() 方法,里面可以设置元素显示的速度,可以是show("fast") , show("slow") , show(1000) 。

    2、hide() 方法,里面也可以设置元素显示的速度,可以是hide("fast") , hide("slow") , hide(1000)。

    3、 fadeIn() 和 fadeOut() 方法,改变元素的不透明度。fadeOut() 会在指定的时间内降低元素的不透明度,直至元素完全消失(“display:none”)。fadeIn()则恰好相反。

    4、slideUp() 和 slideDown() 方法只会改变元素的高度。

    5、自定义动画方法:

    animate(params , speed , callback);

      (1)params :一个包含样式属性和值的映射,比如 {property1 : "value1" , property2 : "value2" , ...}。

      (2)speed:速度参数,可选。

      (3)callback:在动画完成时执行的函数,可选。

     <script type="text/javascript">
            $(function(){
                $("#panel").click(function(){
                    $(this).animate({left:"500px"} , 3000);
                })
            })
        </script>
        <style type="text/css">
            #panel{
                position: relative;
                100px;
                height:100px;
                border:1px solid #0050d0;
                background-color: #96e555;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div id="panel"></div>
    </body>

    效果:点击后让方块在3秒内移到距页面左边500px处。

    <script type="text/javascript">
            $(function(){
                $("#panel").click(function(){
                    $(this).animate({left:"+=500px"} , 3000);
                })
            })
        </script>

    将属性值写为标红字后,指相对于当前的位置向右移动500px。

    6、多重动画:

    <script type="text/javascript">
            $(function(){
                $("#panel").click(function(){
                    $(this).animate({left:"500px",height:"200px"} , 3000);
                })
            })
        </script>

    效果:向右移动500px的同时,高度变为200px,二者同时发生。

    7、按顺序执行多个动画:

     <script type="text/javascript">
            $(function(){
                $("#panel").click(function(){
                    $(this).animate({left:"500px"},3000);
                    $(this).animate({height:"200px"},3000);
                })
            })
        </script>

    效果:先向右移动500px,再将高度变为200px,按顺序执行。

    8、停止元素的动画,如果在某处需要停止动画,需要使用stop()方法:

    stop([clearQueue] [, gotoEnd]);

    两个参数都是可选的,为Boolean(true或false)。 clearQueue 代表是否要清空未执行完的动画队列,gotoEnd代表是否直接将正在执行的动画跳到末状态。

    <script type="text/javascript">
            $(function(){
                $("#panel").hover(function(){
                    $(this).stop()
                            .animate({height:"150px","300px"},200);
                },function(){
                    $(this).stop()
                            .animate({height:"22px","60px"},300);
                });
            })
    
        </script>

    当有连贯动画时,stop()的第一个参数就发挥了作用。因为如果不清除后面未执行的动作,触发鼠标光标后,只会停止当前的动画,并继续执行下面的animate() , 光标移除事件要等animate()动作完成之后才执行,就会出现光标移入移除与动画不匹配的情况。

    8、要避免动画累积而导致的动画与用户的行为不一致,在添加动画前需要判断元素是否处于动画状态。

    if(!$(element).is(":animate")){}

    9、jQuery中3个专门用于交互的动画方法

      (1)toggle(speed , [callback])  可以切换元素的可见状态

      (2)slideToggle(speed , [callback]) 通过高度变化来切换匹配元素的可见性

      (3)fadeTo(speed , opacity , [callback]) 可以把元素的不透明度以渐进的方式调整到指定的值。

  • 相关阅读:
    常用模块汇总
    day 16 常用模块 time 和 datetime(1)
    二分法 函数式 模块
    day 15 模块 (3)
    vue require.context 检索文件夹内文件路径
    Node.js搭建本地服务,读取css/js/img/html等各种格式文件
    Nodejs搭建web服务器
    el-table横向滚动条固定在屏幕最下方显示
    IE浏览器 backspace键使浏览器回退
    vue ElementUI el-input 键盘enter事件 导致刷新表单问题
  • 原文地址:https://www.cnblogs.com/qducn/p/7428102.html
Copyright © 2011-2022 走看看