首页技术jquery动画效果代码(css动画效果代码)

jquery动画效果代码(css动画效果代码)

编程之家2026-06-21825次浏览

今天给各位分享jquery动画效果代码的知识,其中也会对css动画效果代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

jquery动画效果代码(css动画效果代码)

jQuery中的动画效果有哪些

jQuery中的动画效果有:slideDown,slideUp等实现滑动效果;fadeIn,fadeToggle等实现淡入淡出的效果

jQuery有很多方法可以帮助我们在页面上实现很多有趣好玩的动画效果,而且程序代码简单比用原生态的JavaScript代码实现效果更加方便简洁,今天将在文章中详细和大家介绍几种jQuery动画操作的方法,希望对大家的学习有一定的帮助。

【推荐课程:jQuery动画】

滑动效果

slideDown()

可以通过高度变化从下往上增大,并且以滑动的方式显示隐藏的内容

jquery动画效果代码(css动画效果代码)

$(".btn2").click(function(){

$("p").slideDown();

});slideUp()

可以通过高度变化从上往下减小

$("p").slideUp("slow");slideToggle([speed],[easing],[fn])

通过高度变化来切换所有匹配元素的可见性

jquery动画效果代码(css动画效果代码)

例:快速将段落滑上或滑下,之后弹出一个对话框

$("p").slideToggle("fast",function(){

alert("hello world!")淡入淡出

fadeIn()

通过设置不透明度的变化来实现所有匹配元素的淡入效果

例:用200毫秒快速将段落淡入,之后弹出一个对话框

("p").fadeIn("fast",function(){

alert("hello world!");

});fadeOut()

通过设置不透明度的变化来实现所有匹配元素的淡出效果

例:用200毫秒快速将段落淡出,之后弹出一个对话框

$("p").fadeOut("fast",function(){

alert("hello world!");

});fadeTo()

把所有匹配元素的不透明度以渐进方式调整到指定的不透明度

用200毫秒快速将段落的透明度调整到0.25,大约1/4的可见度,之后弹出一个对话框

$("p").fadeTo("fast", 0.25, function(){

alert("hello world!");

});fadeToggle()

通过不透明度的变化来开关所有匹配元素的淡入和淡出效果

例:用200毫秒快速将段落淡入,之后弹出一个对话框

$("p").fadeToggle("fast",function(){

alert("hello world!");

});案例:当我们鼠标点击按钮时隐藏的内容显示,并且淡出消失

<body>

<div id="box">

<div id="btn">点击这里,显示或隐藏</div>

<div id="content">jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)</div>

</div>

<script src="jquery/jquery-1.12.4.js"></script>

<script type="text/javascript">

$(function(){

$("#btn").click(function(){

$("#content").slideToggle("slow");

$("#content").fadeToggle("slow");

});

});

</script>未加效果前

添加效果后

jquery有哪些动画效果,如何自定义动画

一、动画 animate()

1、animate()方法的简单使用

有些复杂的动画通过之前学到的几个动画函数是不能够实现,这时候就是强大的animate方法了。

操作一个元素执行3秒的淡入动画,对比下一下2组动画设置的区别。

$(elem).fadeOut(3000)

$(elem).animate({

opacity:0

},3000)显而易见,animate方法更加灵活了,可以精确的控制样式属性从而执行动画。

语法:

1.animate(properties[,duration][,easing][,complete])

2.animate(properties,options).animate()方法允许在任意的数值的CSS属性上创建动画。2种语法使用,几乎差不多了,唯一必要的属性就是一组CSS属性键值对。这组属性和用于设置.css()方法的属性键值对类似,除了属性范围做了更多限制。第二个参数开始可以单独传递多个实参也可以合并成一个对象传递了。

参数分解:

properties:一个或多个css属性的键值对所构成的Object对象。要特别注意所有用于动画的属性必须是数字的,除非另有说明;这些属性如果不是数字的将不能使用基本的jQuery功能。比如常见的,border、margin、padding、width、height、font、left、top、right、bottom、wordSpacing等等这些都是能产生动画效果的。background-color很明显不可以,因为参数是red或者GBG这样的值,非常用插件,否则正常情况下是不能只能动画效果的。注意,CSS样式使用 DOM名称(比如"fontSize")来设置,而非 CSS名称(比如"font-size")。

特别注意单位,属性值的单位像素(px),除非另有说明。单位em和%需要指定使用

.animate({

left:,

width:'px'

opacity:'show',

fontSize:"em",

},);

除了定义数值,每个属性能使用'show','hide',和'toggle'。这些快捷方式允许定制隐藏和显示动画用来控制元素的显示或隐藏

.animate({

width:"toggle"

});

如果提供一个以+=或-=开始的值,那么目标值就是以这个属性的当前值加上或者减去给定的数字来计算的

.animate({

left:'+50px'

},"slow");

duration:时间

动画执行的时间,持续时间是以毫秒为单位的;值越大表示动画执行的越慢,不是越快。还可以提供'fast'和'slow'字符串,分别表示持续时间为200和 600毫秒。

easing动画运动的算法:

jQuery库中是默认的时调用 swing。在一个恒定的速度进行动画,如果需要其他的动画算法,请查找相关的插件

complete回调

动画完成时执行的函数,这个可以保证当前动画确定完成后发会触发

2、animate()方法来依次执行多个动画

animate在执行动画中,如果需要观察动画的一些执行情况,或者在动画进行中的某一时刻进行一些其他处理,我们可以通过animate的提供第二种设置语法,传递一个对象参数,可以拿到动画执行状态一些通知。

.animate(properties,options)options参数

duration-设置动画执行的时间

easing-规定要使用的 easing函数,过渡使用哪种缓动函数

step:规定每个动画的每一步完成之后要执行的函数

progress:每一次动画调用的时候会执行这个回调,就是一个进度的概念

complete:动画完成回调

如果多个元素执行动画,回调将在每个匹配的元素上执行一次,不是作为整个动画执行一次

列出常用的方式

$('#elem').animate({

width:'toggle',

height:'toggle'

},{

duration:,

specialEasing:{

width:'linear',

height:'easeOutBounce'

},

complete:function(){

$(this).after('<div>Animationcomplete.</div>');

}

});

调用animate()方法可以创建自定义动画效果,它的调用格式为:

$(selector).animate({params},speed,[callback])

其中,params参数为制作动画效果的CSS属性名与值,speed参数为动画的效果的速度,单位为毫秒,可选项callback参数为动画完成时执行的回调函数名。

例如,调用animate()方法以由小到大的动画效果显示图片,如下图所示:

<body>

<h>制作简单的动画效果</h>

<imgsrc="images/.png"alt=""/>

<divid="tip"></div>

<scripttype="text/javascript">

$(function(){

$('img').animate({

width:'px';

height:'px'

},,function(){

$("#tip").html('执行完成!');

});

})

</script>

</body>

jquery 页面跳转动画效果

HTML结构

该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进度条。

<main>

<div class="cd-index cd-main-content">

<div>

<h1>Page Transition</h1>

<!-- your content here-->

</div>

</div>

</main>

<div class="cd-cover-layer"></div><!-- this is the cover layer-->

<div class="cd-loading-bar"></div><!-- this is the loading bar-->

CSS样式

该页面切换特效中使用body::before和body::after伪元素在页面切换过程中创建两个遮罩层来遮住页面内容。它们的定位是固定定位,高度等于50vh,宽度为100%。默认情况下,使用CSS transform属性将它们隐藏起来(translateY(-100%)/translateY(100%))。当用户切换页面的时候,这些元素被移动回视口当中(通过在<body>元素上添加.page-is-changing class)。

下面的图片演示了这个过程:

页面切换特效

body::after, body::before{

/* these are the 2 half blocks which cover the content once the animation is triggered*/

height: 50vh;

width: 100%;

position: fixed;

left: 0;

}

body::before{

top: 0;

transform: translateY(-100%);

}

body::after{

bottom: 0;

transform: translateY(100%);

}

body.page-is-changing::after, body.page-is-changing::before{

transform: translateY(0);

}

页面切换时,页面内容的淡入淡出效果是通过改变div.cd-cover-layer的透明度实现的。它覆盖了.cd-main-content元素,并具有相同的背景色,然后在<body>被添加.page-is-changing class的时候,将透明度从0修改为1。

Loading进度条使用.cd-loading-bar::before伪元素来制作。默认它被缩小(scaleX(0))和transform-origin: left center。当页面切换开始时它被使用scaleX(1)放大会原来的尺寸。

.cd-loading-bar{

/* this is the loading bar- visible while switching from one page to the following one*/

position: fixed;

height: 2px;

width: 90%;

}

.cd-loading-bar::before{

/* this is the progress bar inside the loading bar*/

position: absolute;

left: 0;

top: 0;

height: 100%;

width: 100%;

transform: scaleX(0);

transform-origin: left center;

}

.page-is-changing.cd-loading-bar::before{

transform: scaleX(1);

}

特效中平滑的过渡效果使用CSS Transitions来实现。每一个动画元素都被添加了不同的transition-delay,以实现不同的元素动画顺序。

JAVASCRIPT

该页面切换特效中在链接上使用data-type="page-transition"属性,用于触发页面切换事件。当插件检测到用户点击事件,changePage()方法将被执行。

$('main').on('click','[data-type="page-transition"]', function(event){

event.preventDefault();

//detect which page has been selected

var newPage=$(this).attr('href');

//if the page is not animating- trigger animation

if(!isAnimating) changePage(newPage, true);

});

这个方法会触发页面切换动画,并通过loadNewContent()方法加载新内容。

function changePage(url, bool){

isAnimating= true;

// trigger page animation

$('body').addClass('page-is-changing');

//...

loadNewContent(url, bool);

//...

}

当新的内容被加载后,会替代原来<main>元素中的内容。.page-is-changing class被从body中移除,新加载的内容会被添加到window.history中(使用pushState()方法)。

function loadNewContent(url, bool){

var newSectionName='cd-'+url.replace('.html',''),

section=$('<div class="cd-main-content'+newSectionName+'"></div>');

section.load(url+'.cd-main-content>*', function(event){

// load new content and replace<main> content with the new one

$('main').html(section);

//...

$('body').removeClass('page-is-changing');

//...

if(url!= window.location){

//add the new page to the window.history

window.history.pushState({path: url},'',url);

}

});

}

为了在用户点击浏览器的回退按钮时触发相同的页面切换动画效果,插件中监听popstate事件,并在它触发时执行changePage()函数。

$(window).on('popstate', function(){

var newPageArray= location.pathname.split('/'),

//this is the url of the page to be loaded

newPage= newPageArray[newPageArray.length- 1];

if(!isAnimating) changePage(newPage);

});

如果你还想了解更多这方面的信息,记得收藏关注本站。

input type text html5inputenterai智能写作软件推荐?ai智能写作软件哪个好