`
wang_zhi_peng2007
  • 浏览: 251231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript版的简单动画

 
阅读更多

       Google+中有一个特效:拖拽用户头像至分组内,用户头像会有一个特效(绕着圆圈转一圈)。写了个简单的示例,效果如下图所示:



    javaScript 动画代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>~ ~</title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <meta http-equiv='content-type' content='text/html; charset=utf-8' />
  <style type='text/css'>
   * {margin:0; padding:0;}
   .m {position:absolute; width:1px; height:1px; z-index:1; background-color:#3399cc}
   .move {width:30px; height:30px; position:absolute; background-color:#da4936; z-index:999; border-radius:25px;}
   .h {width:800px; position:absolute; border-top:1px solid #323232; top:300px; left:0px; z-index:9;}
   .v {height:800px; border-left:1px solid #323232; left:300px; top:0; z-index:10; position:absolute;}

   #btn {margin:100px;}
  </style>
 </head>

 <body>

<button id="btn">开始运动</button>
<div class="move" id="modelEl"></div>

<div class="h"></div>
<div class="v"></div>

<div>
	步长:<select id='sel'>
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="5">5</option>
		<option value="8">8</option>
		<option value="10">10</option>
		<option value="15">15</option>
		<option value="20">20</option>
		<option value="30">30</option>
	</select>
</div>

<script type="text/javascript">
//1度=π/180 弧度 ( ≈0.017453弧度 ) 

!(function() {
	for (var i = 0; i < 360; i+=1) {
		var r = 200;
		var x0 = 300;
		var y0 = 300;

		var angle = Math.PI * i / 180;
		var x = Math.cos(angle) * r + x0;
		var y = Math.sin(angle) * r + y0;

		document.write('<div class="m" style="left:'+x+'px; top:'+y+'px;"></div>');

		r = 170;
		x = Math.cos(angle) * r + x0;
		y = Math.sin(angle) * r + y0;
		document.write('<div class="m" style="left:'+x+'px; top:'+y+'px;"></div>');
	}
})();

function getEl(id) {
	return typeof id === 'string' ? document.getElementById(id) : id;
}

getEl("btn").onclick = moveHandler;

function movePos(n) {
	var el = getEl("modelEl");

	var r = 185;
	var x0 = 300;
	var y0 = 300;

	var angle = Math.PI * n / 180;
	var x = Math.cos(angle) * r + x0 - el.offsetWidth/2;
	var y = Math.sin(angle) * r + y0 - el.offsetHeight/2;

	el.style.left = x + 'px';
	el.style.top = y + 'px';
}

movePos(270);

function transform(A) {
	return 1 - Math.pow(1 - A, 3);
}

function moveHandler() {
	var base = 270;
	var step = getEl('sel').value | 0;
	var start = 360;
	var end = 0;

	getEl("btn").disabled = true;
	
	var timer = setInterval(function() {		
		if (start >= end) {
			movePos(base + start);
			start -= step;

			step += transform((start - end)/360) / 100;
		} else {
			movePos(base + end);
			
			clearInterval(timer);

			if (moveHandler.count < 10) {
				moveHandler.count++;
				
				setTimeout(function() {
					getEl("sel").selectedIndex = Math.random() * getEl("sel").options.length | 0;

					moveHandler();
				}, 100);
			} else {
				moveHandler.count = 0;
				getEl("btn").disabled = false;
			}
			
		}
	}, 1);
}

moveHandler.count = 0;

</script>
 </body>
</html>

 

 

  • 大小: 27.4 KB
分享到:
评论

相关推荐

    javascript 制作动画

    虽然CSS3引入了`transition`和`animation`属性,可以方便地创建简单的动画,但JavaScript能提供更大的灵活性和控制力。例如,JavaScript可以更精确地控制动画的开始、结束、速度曲线以及响应用户事件。 四、...

    JavaScript_简单的动画为您的顺风项目.zip

    在“JavaScript_简单的动画为您的顺风项目”这个主题中,我们可以深入探讨如何利用JavaScript来创建吸引人的动态效果,提升用户体验。 首先,JavaScript在网页动画中的应用主要是通过操作DOM(文档对象模型)来实现...

    HTML5+JavaScript动画基础 源码

    SVG则是矢量图形标准,支持创建可缩放的图形,特别适合用于线条清晰、色彩简单的动画。 JavaScript,作为浏览器端最常用的脚本语言,为HTML5的动画提供了动力。通过修改DOM(文档对象模型)属性,如元素的位置、...

    HTML5_JavaScript动画基础(高清带目录)

    CSS动画可以为简单的动画提供一个更轻量级的选择。 6. 动画的优化:为了确保动画的流畅性,需要进行性能优化。这包括减少DOM操作,使用Web Workers处理复杂计算,以及避免不必要的全局变量等。 在了解了HTML5和...

    HTML-Javascript动画基础

    HTML和JavaScript是构建网页动态效果和交互的核心技术...无论是简单的过渡效果还是复杂的3D场景,HTML和JavaScript都能提供足够的工具和方法来实现。通过不断实践和学习,你可以创造出富有创意和沉浸感的网页动画作品。

    JavaScript_简单的动画库,令人愉快的用户界面.zip

    在本资源包中,我们关注的是如何利用JavaScript实现简单的动画库,从而创建出令人愉快的用户界面。 JavaScript动画库的核心是通过改变元素的CSS属性,如位置、大小、颜色等,来实现视觉上的动态效果。这些变化可以...

    10款动感Javascript脚本图片动画,很炫

    2. **CSS3转换和过渡**:CSS3提供了transform和transition属性,允许开发者在不使用JavaScript的情况下实现简单的动画效果。这些脚本可能会结合JavaScript,提供更复杂和自定义的动画控制。 3. **事件监听**:用户...

    canvas-particle-network, 使用Canvas和JavaScript的简单动画粒子网络.zip

    canvas-particle-network, 使用Canvas和JavaScript的简单动画粒子网络 画布粒子网络 概述在这个实验中,我建立了一个使用画布和JavaScript构建一个简单。性能。交互和动画。 完全插入'播放,模块化( 通过Browserify...

    简单的动画网页

    对于“简单的动画网页”,Dreamweaver可能是用来进行HTML、CSS和JavaScript的编写和管理。HTML(超文本标记语言)是网页的基础结构,CSS(层叠样式表)则负责样式和布局,而JavaScript则是实现动态效果和用户交互的...

    简单的js动画

    本教程将深入讲解如何利用JavaScript实现一个简单的“hover”效果,这种效果通常用于鼠标悬停时改变元素的外观,以增强用户交互体验。 在JavaScript中,我们通常使用事件监听来响应用户的操作,比如鼠标悬停事件`...

    JavaScript Loading动画

    TweenMax是一款强大的JavaScript动画库,由GreenSock公司开发,它提供了简单易用的API来创建各种复杂的动画效果。TweenMax可以轻松地实现对象的位置、颜色、透明度等属性的平滑过渡,非常适合制作Loading动画。 ...

    简单的JavaScript特效

    "简单的JavaScript特效"这个主题,主要是指利用JavaScript实现的一些基础但有趣的视觉效果。这些效果可能包括按钮的悬停效果、图片轮播、计时器、表单验证、页面元素的动画等,都是初学者经常尝试的实践项目。 在...

    一个简单而强大的JavaScript动画引擎.zip

    这个压缩包"一个简单而强大的JavaScript动画引擎.zip"包含了一个名为"Animation.js"的核心脚本文件,可能还包含了其他辅助资源或示例文件,如"Y-456"、"147杨"和"G",这些可能是项目目录、数据文件或者其他的...

    用JavaScript制作动画

    总的来说,JavaScript提供了一套丰富的工具和技术,使开发者能够创建出各种各样的网页动画,从简单的滑动效果到复杂的交互式体验。无论你是初学者还是经验丰富的开发者,学习和掌握JavaScript动画都是提升网页动态...

    JavaScript动画引擎.zip

    本文将深入探讨JavaScript在动画制作中的应用,以及如何构建一个简单的动画引擎。 JavaScript动画的原理基于浏览器的渲染机制,通过不断改变页面元素的样式属性,如位置、大小或颜色,来模拟动画效果。主要有以下几...

    Javascript制作动画

    在本文中,我们将深入探讨如何利用JavaScript来制作动画。 首先,理解JavaScript动画的基础是关键。JavaScript通过改变HTML元素的位置、大小、颜色等属性来实现动画效果。这些变化通常是连续且快速的,给人造成一种...

    Between是一个基于ES6代理的JavaScript动画库

    `Between` 还允许你创建复杂的动画效果,通过组合多个简单的动画或者嵌套动画。这在处理复杂的交互和视觉展示时非常有用。例如,可以同时对多个属性进行动画,或者在一个动画结束后开始另一个动画。 ### 性能优化 ...

    javascript HTML5动画基础教程(pdf书)

    - 展示如何通过JavaScript操作DOM元素来实现简单的动画效果。 - **三角函数的应用**(第3章和第4章) - 介绍三角函数的基本概念及其在动画中的应用。 - 使用三角函数计算运动物体的位置、速度等参数。 - 展示...

    简单完整手写动画js

    【标题】"简单完整手写动画js" 涉及的知识点主要集中在JavaScript(js)编程语言上,尤其是关于创建动态效果和动画的部分。在Web开发中,JavaScript是一种不可或缺的客户端脚本语言,用于实现页面的交互性和动态功能...

Global site tag (gtag.js) - Google Analytics