`
wangking717
  • 浏览: 263133 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

jQuery动画效果学习

阅读更多

1、元素的显示和隐藏

 

display:none; 隐藏

display:block; 显示

简单显示和隐藏方法

 

a) show() 显示

b) hide() 隐藏

c) toggle() 开关,显示则隐藏,隐藏则显示

<script type="text/javascript">
    function f1(){
        //隐藏
        $("div").hide();//display:none
        //document.getElementById('id').style.display="none";
    }
    function f2(){
        //显示
        $("div").show();//display:block
    }
    function f3(){
        $("div").toggle();
    }
</script>
<style type="text/css">
     div {width:300px; height:200px; background-color:blue;}
</style>
 <body>
     <div>duck and dog</div>
      <input type="button" value="隐藏" onclick="f1()" />
      <input type="button" value="显示" onclick="f2()" />
      <input type="button" value="开关效果" onclick="f3()" />
</body>

 

CSS支持两种方法显示和隐藏元素,即使用visibility或display样式,他们控制元素显示和隐藏的时候效果相同,但是结果却不同。 

具体说明如下:

 

visibility 属性在隐藏元素的时候,同时会保存元素在文档流中的影响力,隐藏后元素的未知保持不变。该属性包括visible(默认)和hidden两个值。

display 隐藏后,隐藏的元素不再占用文档的位置。

2、滑动效果显示和隐藏

 

slideUp(speed[,callback]) 向上滑动元素并最终隐藏

slideDown(speed[,callback]) 向下滑动元素并最终显示

slideToggle(speed[,callback])

speed:设置效果的速度(slow(600)normal(400) fast(200) 时间(毫秒))

callback: 效果执行完毕之后自动调用的回调函数

 

<script type="text/javascript">
    function f1(){
        //隐藏
        $("div").slideUp(3000,function(){
            alert('我消失了,你能看到么');
        });
    }
    function f2(){
        //显示
        $("div").slideDown(3000,function(){
            alert('我又回来了');
        });//display:block
    }
    function f3(){
        $("div").slideToggle(1000);
    }
    $(function(){
        //气缸滑动效果
        //setInterval("f3()",1000);
    });
</script>
 
<style type="text/css">
div {width:300px; height:200px; background-color:blue;}
</style>
 
<body>
     <div>duck and dog</div>
     <input type="button" value="隐藏" onclick="f1()" />
     <input type="button" value="显示" onclick="f2()" />
     <input type="button" value="开关效果" onclick="f3()" />
 </body>

 

3、淡入淡出效果

 

让元素通过一定透明度变化,达到显示和隐藏的效果

 

fadeIn(speed, [callback])

fadeOut(speed, [callback])

fadeToggle(speed, [callback])开关效果

fadeTo(speed, opacity, [callback]) 把div设置一定透明度(0-1)0.3就是30%透明度

<script type="text/javascript"> 
    function f1(){
        //隐藏
        $("div").fadeOut(4000);
    }
    function f2(){
        //显示
        $("div").fadeIn(4000);
        $("#two").fadeTo(2000,0.3);
    }
 
    function f3(){
        $("div").fadeToggle(2000);
    }
 
</script>
<style type="text/css">
    div {width:300px; height:200px; background-color:blue;}
</style>
<body>
    <div id = "two">duck and dog</div>
 
    <input type="button" value="隐藏" onclick="f1()" />
    <input type="button" value="显示" onclick="f2()" />
    <input type="button" value="开关效果" onclick="f3()" />
</body>

 

设置透明度,div的透明度是30%:

 

4、动画效果底层方法animate()

 

show() hide() 等等动画效果内部都是执行animate()方法

 

$().animate(css效果参数[,时间][,回调函数]);

css()等一般jquery方法执行完毕之后会返回当前jquery对象,因此jquery的许多方法可以链式调用。

 

 

<script type="text/javascript">
    function f1(){
        //文字大小、文字粗体、div本身宽度和高度
        //font-size  background-color  color
 
        console.log($("div"));
        //jquery对象调用完毕css方法本身还是一个jquery对象
        //说明css方法执行完毕有return this关键字
        console.log($("div").css('font-weight','bold').css("background-color",'pink')); 
 
        var jn = {'font-size':'30px',width:'400px',height:'300px'};
        $("div").css('font-weight',"bold").css("background-color","pink").css("color","white").animate(jn,2000);
 
        //$("div").animate(jn,2000);
    }
 
</script>
 
<style type="text/css">
    div {width:300px; height:200px; background-color:blue; }
</style>
 
<body>
    <div>duck and dog</div>
    <input type="button" value="设置" onclick="f1()" />
</body>

 

5、累加累减动画

 

如果动画一次设定left:500 ,第一次单击div会左移500像素,第二次单击就不会动了。累加累减就是连续动的,只需要将left:”500px”改成left:”+=500px”或者left:”-=500px”即可。

 

(function(){  
    $("#panel").click(function(){  
       $(this).animate({left: "+=500px"}, 3000);  
    })  
})

   

6、多重动画

 

1、同时执行多个动画 上面的例子只控制了left属性的变化,这回我们在控制left属性的时候同时控制元素高度变为200px

 

$(function(){  
    $("#panel").click(function(){  
       $(this).animate({left: "500px",height:"200px"}, 3000);  
    })  
})

 

2、顺序执行动画

 

上面例子中元素右移和放大高度两个动画是同时进行的。现在我们要实现先右移再放大高度,那很简单,只需要把上面的animate()方法拆开写成两个即可

 

$(function(){  
    $("#panel").click(function(){  
       $(this).animate({left: "500px"},3000)  
              .animate({height:"200px"},1000);  
    })  
})  

 

3、综合动画

 

接下来完成更复杂的动画。单击div元素后让他向右移动的同时增大他的高度,并将它的不透明度从50%切换到100%。然后再让它从上向下移动,同时它的宽度变大,当完成这 

些效果后让它以淡出的方式隐藏掉。

 

$(function(){  
    $("#panel").css("opacity",0.5);//设置不透明度  
    $("#panel").click(function(){  
       $(this).animate({left: "400px",height:"200px",opacity:"1"},3000)  
              .animate({top:"200px",width:"200px"},3000)  
              .fadeOut(1000);  
    })  
}) 

 

7、动画回调函数

 

在上例中,如果想在最后一步切换css样式而不是隐藏元素。这我们就可以用到animate的第三个参数回调函数了

 

$(function(){  
    $("#panel").css("opacity",0.5);//设置不透明度  
    $("#panel").click(function(){  
       $(this).animate({left: "400px",height:"200px",opacity:"1"},3000)  
              .animate({top:"200px",width:"200px"},3000,function(){$(this).css("border","5px solid blue")});  
 
    })  
}) 

 

这样就把css方法加入到动画队列中了。

 

8、停止动画和判断是否处于动画状态

 

1、停止元素的动画

 

stop([clearQueue][,gotoEnd]) 两个都是可选参数,都是boolean类型 

参数说明:

 

clearQueue:代表是否清空未执行完的动画队列

gotoEnd :代表是否将正在执行的动画跳到末状态

通过一个综合的示例就可以弄明白stop()方法的这两个参数了:

 

<style type="text/css">  
    *{margin:0;padding:0;}    
    body { font-size: 13px; line-height: 130%; padding: 60px }  
    #panel { width: 60px; border: 1px solid #0050D0 ;height:22px;overflow:hidden;}  
    .head { padding: 5px; background: #96E555; cursor: pointer;width: 300px;}  
    .content { padding: 10px; text-indent: 2em; border-top: 1px solid #0050D0;display:block; width:280px;}  
</style>  
<script src="../../../scripts/jquery.js" type="text/javascript"></script>  
<script type="text/javascript">  
    $(function(){  
          $("button:eq(0)").click(function () {  
              $("#panel")  
                .animate({height : "150" } , 2000 )  
                .animate({width : "300" } , 2000 )  
                .hide(3000)  
                .animate({height : "show" , width : "show" , opacity : "show" } , 2000 )  
                .animate({height : "500"} , 2000 );  
          });  
          $("button:eq(1)").click(function () {  
              $("#panel").stop();//停止当前动画,继续下一个动画  
          });  
          $("button:eq(2)").click(function () {  
              $("#panel").stop(true);//清除元素的所有动画  
          });  
          $("button:eq(3)").click(function () {  
              $("#panel").stop(false,true);//让当前动画直接到达末状态 ,继续下一个动画  
          });  
          $("button:eq(4)").click(function () {  
              $("#panel").stop(true,true);//清除元素的所有动画,让当前动画直接到达末状态   
          });  
 
    })  
</script>  
 
<body>  
    <button>开始一连串动画</button>  
    <button>stop()</button>  
    <button>stop(true)</button>  
    <button>stop(false,true)</button>  
    <button>stop(true,true)</button>  
    <div id="panel">  
        <h5 class="head">三国杀杀天下</h5>  
        <div class="content">  
            夏侯惇的眼睛,陆逊的联营,郭嘉司马深深的基情  
        </div>  
    </div>  
</body>  
</html>

 

2、判断元素是否处于动画状态

 

当使用animate()方法的时候,要避免动画的累积导致的动画与用户的行为不一致的现象。当用户快速在某个元素上执行animate()动画时,就会出现动画累积。

 

解决办法是判断元素是否正在处于动画状态,当不处于动画状态的时候,才为元素添加新的动画。 

用法:

 

if(!$(element).is(":animated")){  
    //添加新的动画  
}

 

分享到:
评论

相关推荐

    jquery动画效果学习笔记(8种效果)

    在学习jQuery动画效果时,首先要知道的是,jQuery为开发者提供了一系列预定义的动画效果函数,这些函数可以用于实现元素的显示、隐藏以及淡入淡出等动态效果。动画效果使得页面元素能够以更流畅和吸引人的方式与用户...

    .jQuery动画效果

    在“jQuery动画效果”这个主题中,我们将...通过学习和实践这些jQuery动画效果,开发者可以创建出引人入胜的网页和应用程序,提高用户的参与度和满意度。理解如何有效利用jQuery动画,是现代前端开发中不可或缺的技能。

    jquery的动画效果

    在VS2005环境下,无需数据库,你可以直接下载Demo来体验和学习这些动画效果。Demo通常包含HTML、CSS和JavaScript文件,通过查看和修改代码,你可以深入理解jQuery动画的工作原理,并将其应用到自己的项目中。 通过...

    jQuery动画效果鼠标响应菜单.zip

    《jQuery动画效果与鼠标响应菜单》 在网页设计中,用户界面的交互性和吸引力是至关重要的,其中菜单导航系统作为用户与网站互动的桥梁,其设计尤为重要。本篇将深入探讨"jQuery动画效果多功能菜单"这一主题,它利用...

    jQuery动画效果多功能菜单

    "jQuery动画效果多功能菜单"是一个专为学习设计的项目,它展示了如何利用jQuery创建出吸引人的、具有动画效果的菜单,以增强用户体验并提升网页的视觉吸引力。 jQuery中的动画功能主要通过几个核心函数来实现,如`...

    jquery动画效果导航栏

    在"jquery动画效果导航栏"项目中,`style.css`是用于定义导航栏样式的关键文件。CSS(层叠样式表)允许我们控制元素的外观,如字体、颜色、布局等。我们可以设置导航栏的背景色、文字样式、悬浮效果,以及当鼠标悬停...

    jQuery添加背景动画效果插件.zip

    在本案例中,"jQuery添加背景动画效果插件.zip" 提供了一种方法,通过使用jQuery来实现网页背景的动态效果。这些效果可能是渐变、滑动、旋转等多种视觉变换,以增强用户体验和网站的视觉吸引力。 首先,我们要理解...

    jquery实例超炫animate动画效果

    在JavaScript的世界里,jQuery库以其简洁...总结来说,这个主题为我们提供了一个深入学习jQuery动画机制的机会,通过分析和实践这些超炫的`animate`实例,我们可以提升Web开发技能,创造出更加生动、吸引人的网页效果。

    jQuery动画效果悬浮菜单.zip

    "jQuery动画效果悬浮菜单.zip" 是一个专门用于创建动态、吸引人的网站菜单的资源包,利用了JavaScript库jQuery的强大功能。jQuery简化了HTML文档遍历、事件处理、动画效果和Ajax交互,使得开发复杂的网页交互变得...

    jQuery 模拟的鼠标动画菜单效果

    "jQuery 模拟的鼠标动画菜单效果"是一个利用 jQuery 技术实现的菜单设计,它通过鼠标悬停事件触发特定的动画效果,为用户带来独特的视觉体验。 这个菜单效果的特点在于当鼠标光标悬停在菜单项上时,色块或图标会...

    jQuery学习动画效果基础

    jQuery学习动画效果基础 jQuery学习动画效果基础是指使用jQuery库来实现网页中的动画效果。动画效果可以丰富网页的交互性和视觉效果,使用户体验更加流畅和自然。本文将详细介绍jQuery学习动画效果基础,并提供相关...

    jQuery图片排列动画效果.zip

    《jQuery图片排列动画效果》 在网页设计中,图片的展示方式往往能直接影响用户体验。jQuery作为一款强大的JavaScript库,提供了丰富的功能,使得图片排列和动画效果的实现变得简单易行。本项目“jQuery图片排列动画...

    jquery动画特效大全

    学习并熟练掌握这些jQuery动画,开发者不仅可以提升网页的用户体验,还能在设计动态交互时有更多的创新可能。此外,了解如何优化动画性能,如减少DOM操作、使用CSS3硬件加速等技巧,也是提升网站性能的关键。 总的...

    jQuery css3打开遮罩图片形状过渡动画效果

    在IT行业中,jQuery和CSS3是两种非常重要的前端技术,它们在网页动态效果和样式设计上发挥着关键作用。本文将深入探讨如何结合jQuery和...通过不断地学习和实践,开发者可以创作出更多富有创意和互动性的网页动画效果。

    jquery叠加效果自动滚动切换特效.zip

    在网页设计和开发中,jQuery 是一款非常流行的 JavaScript 库,它简化了JavaScript的许多操作,使得动态交互和动画效果的实现更为便捷。本主题聚焦于"jquery叠加效果自动滚动切换特效.zip",这是一个利用jQuery实现...

    JQUERY动画导航

    虽然jQuery动画效果丰富,但过多的动画可能会影响页面性能。因此,我们需要合理使用`$(document).ready()`和`$(window).load()`来确保动画在正确的时间执行,同时考虑使用CSS3硬件加速和延迟加载技术优化动画性能。 ...

    jQuery表单动画切换效果.zip_jQuery表单动画切换效果

    开发者可以在这个文件中查看和测试动画效果,也可以根据自己的需求进行定制。 为了实现表单动画切换,jQuery通常与CSS一起工作。CSS用于定义元素的基本样式和初始状态,而jQuery则处理动态改变这些样式以实现动画。...

    jquery动画制作示例图片滚动和飞行乌鸦,车窗效果,非常强大

    `.animate()`方法允许开发者创建平滑的动画效果,例如改变图片的位置、大小或透明度,以达到平滑滚动的效果。 接着是“飞行乌鸦”的动画。这可能是指将一个乌鸦的图片或者SVG元素通过jQuery移动,模拟飞行的轨迹。...

    jquery鼠标悬停动画效果.rar

    在这个“jquery鼠标悬停动画效果.rar”压缩包中,我们很显然是要探讨如何利用jQuery来实现鼠标悬停时的动态效果。虽然标签上标注的是"C#",但根据标题和描述,我们可以推测其内容主要与前端开发的jQuery相关,而不是...

    jquery可爱3D卡通动画效果rar

    总结来说,"jquery可爱3D卡通动画效果rar"这个压缩包中的知识点主要包括:利用jQuery和CSS3实现3D动画效果,创建水晶文字,应用jQuery内置和插件特效,以及获取和使用jQuery库。这些技术在现代网页开发中广泛应用,...

Global site tag (gtag.js) - Google Analytics