首页编程java编程javascript动画 js动画效果大全

javascript动画 js动画效果大全

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

大家好,如果您还对javascript动画不太了解,没有关系,今天就由本站为大家分享javascript动画的知识,包括js动画效果大全的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

javascript动画 js动画效果大全

CSS3动画和js动画各有什么优劣

CSS3的动画的优点:

1.在性能上会稍微好一些,浏览器会对CSS3的动画做一些优化(比如专门新建一个图层用来跑动画)

2.代码相对简单

但其缺点也很明显:

1.在动画控制上不够灵活

2.兼容性不好

javascript动画 js动画效果大全

3.部分动画功能无法实现(如滚动动画,视差滚动等)

JavaScript的动画正好弥补了这两个缺点,控制能力很强,可以单帧的控制、变换,同时写得好完全可以兼容IE6,并且功能强大。但想想CSS动画的transform矩阵是C++级的计算,必然要比javascript级的计算要快。另外对库的依赖也是一个很让人头疼的问题。

所以,对于一些复杂控制的动画,使用javascript会比较靠谱。而在实现一些小的交互动效的时候,就多考虑考虑CSS吧。

jQuery中的动画效果有哪些

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

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

【推荐课程:jQuery动画】

javascript动画 js动画效果大全

滑动效果

slideDown()

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

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

$("p").slideDown();

});slideUp()

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

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

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

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

$("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 页面跳转动画效果

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);

});

文章分享结束,javascript动画和js动画效果大全的答案你都知道了吗?欢迎再次光临本站哦!

java模拟器下载,七星瓢虫模拟器java经典例题?java编程题