Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画

yizhihongxing

针对Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画,以下是完整的攻略。

1. 简介

动画是网页设计中常用的元素之一,能使页面变得更加生动有趣。在Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画中,让我们一起学习如何使用Javascript和DHTML来实现页面动画效果。

2. 代码实现

在本篇教程中,涉及到两个实例。

2.1 实例1:图片滑动效果

本实例实现了一组图片被鼠标悬停时,能够从原位置滑动到固定位置的效果。

代码示例:

<!doctype html>
<html>
<head>
<title>JS & DHTML实例编程 — 图片滑动</title>
<script type="text/javascript">
<!--
var interval = null // 定义全局变量interval

function move(imgElement, x, y, stepx, stepy) {
    if(interval != null) clearInterval(interval); // 如果正在滑动,则先清除之前的定时器
    var posx = x, posy = y; // 记录图片的当前位置
    interval = setInterval(function () {
        posx += stepx; posy += stepy; // 修改图片位置
        imgElement.style.left = posx + "px"; imgElement.style.top = posy + "px";
        if(posx <= 0 || posy <= 0) clearInterval(interval); // 当图片位置到达指定值时,清除定时器
    }, 10);
}

function reset(imgElement, x, y) {
    imgElement.style.left = x + "px"; imgElement.style.top = y + "px";
}
//-->
</script>
</head>
<body>
<h1>使用Javascript & DHTML实现图片滑动</h1>
<p><img src="image1.jpg" alt="图片1" onmouseover="move(this, 0, 0, -1, -1);" onmouseout="reset(this, 100, 100);" /> </p>
<p><img src="image2.jpg" alt="图片2" onmouseover="move(this, 200, 0, 1, -1);" onmouseout="reset(this, 100, 100);" /> </p>
<p><img src="image3.jpg" alt="图片3" onmouseover="move(this, 0, 200, -1, 1);" onmouseout="reset(this, 100, 100);" /> </p>
<p><img src="image4.jpg" alt="图片4" onmouseover="move(this, 200, 200, 1, 1);" onmouseout="reset(this, 100, 100);" /> </p>
</body>
</html>

在上述代码中,move()函数为图片添加了onmouseover事件,当鼠标悬停在图片上时,图片会实现从起始位置的移动,直到到达指定的位置。通过onmouseout事件,reset()函数会将图片的位置还原到初始状态。

2.2 实例2:图片淡入淡出效果

本实例实现了一组图片能够自动实现淡入淡出效果。

代码示例:

<!doctype html>
<html>
<head>
<title>JS & DHTML实例编程 — 图片淡入淡出</title>
<style type="text/css">
#container div {
    position: absolute;
    top: 0px;
    left: 0px;
}
</style>
<script type="text/javascript">
<!--
var current = 0 // 定义全局变量current

function fadeInOut() {
    var count = 4; // 共有4张图片
    current = (current + 1) % count; // 记录当前图片序号
    var next = (current + 1) % count; // 记录下一张图片的序号
    var imgElements = document.getElementsByTagName("img"); // 获取所有图片
    var container = document.getElementById("container"); // 获取图片容器元素
    var step = 10; // 定义淡入淡出的步长
    var initOpacity = 0; // 初始透明度为0
    var maxOpacity = 100; // 最大透明度为100
    var stepOpacity = 10; // 定义透明度变化的幅度
    imgElements[current].style.opacity = maxOpacity / 100; // 将当前图片透明度初始化为最大值
    imgElements[next].style.opacity = initOpacity / 100; // 将下一张图片透明度初始化为最小值
    container.appendChild(imgElements[next].parentNode); // 将下一张图片移动到当前图片前面
    var interval = setInterval(function () {
        var currentOpacity = parseFloat(imgElements[current].style.opacity) * 100; // 获取当前图片的透明度
        var nextOpacity = parseFloat(imgElements[next].style.opacity) * 100; // 获取下一张图片的透明度
        currentOpacity -= stepOpacity; nextOpacity += stepOpacity; // 修改当前图片和下一张图片的透明度
        imgElements[current].style.opacity = currentOpacity / 100; // 修改当前图片的透明度
        imgElements[next].style.opacity = nextOpacity / 100; // 修改下一张图片的透明度
        if(currentOpacity <= 0 || nextOpacity >= 100) clearInterval(interval); // 当图片透明度到达最小或最大值时,清除定时器
    }, step);
}

window.onload = function () {
    var container = document.createElement("div"); // 创建图片容器元素
    container.setAttribute("id", "container"); // 设置容器元素id为container
    var imgElements = []; // 定义imgElements数组来存储所有图片
    for(var i = 0; i < 4; i++) {
        var imgElement = document.createElement("img"); // 创建图片元素
        imgElement.setAttribute("src", "image" + (i+1) + ".jpg"); // 设置图片路径
        imgElement.style.opacity = "0"; // 初始化图片透明度为0
        container.appendChild(imgElement); // 将图片元素添加到容器中
        imgElements.push(imgElement); // 将图片元素存储到imgElements数组中
    }
    document.body.appendChild(container); // 将容器元素添加到body中
    setInterval(fadeInOut, 3000); // 每隔3秒执行一次淡入淡出效果
};
//-->
</script>
</head>
<body>
</body>
</html>

在上述代码中,fadeInOut()函数定义了图片淡入淡出的过程,每次调用该函数会执行下一组图片的淡入淡出操作。将该函数与setInterval()函数结合使用,可以自动轮播图片。

3. 总结

Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画教程,涵盖了图片滑动效果和图片淡入淡出效果两个实现动画效果的项目。我们可以通过学习和实践这些示例来了解Javascript和DHTML的应用场景及相关知识点。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 跨平台移动WEB应用开发框架iMAG入门教程

    跨平台移动WEB应用开发框架iMAG入门教程 什么是iMAG iMAG是一款基于HTML5技术开发出的跨平台移动Web应用开发框架,它可以让开发者使用Web技术开发出安装在iOS、Android、Windows Phone等移动终端设备的应用。使用iMAG框架,开发者无需学习Objective-C、Java等编程语言,只需掌握HTML、CSS和JavaScr…

    JavaScript 2023年6月10日
    00
  • json数据处理技巧(字段带空格、增加字段、排序等等)

    JSON数据处理技巧 JSON是一种轻量的数据交换格式,在我们日常的开发中,经常会用到JSON。但是有时候会遇到一些问题,例如字段带空格、需要增加字段、需要排序等等。这篇文章将介绍一些JSON数据处理的技巧。 字段带空格的问题 JSON中的字段不能包含空格,如果字段名中有空格,就需要使用引号将字段名括起来,例如: { "first name&quo…

    JavaScript 2023年5月27日
    00
  • asp.net 操作cookie的简单实例

    下面我将详细讲解“ASP.NET 操作 Cookie 的简单实例”完整攻略。 1. 什么是 Cookie? Cookie 是一种被网站服务器发送给用户浏览器的短文本字符串,通常用于记录用户的一些信息,如用户名、购物车信息等等。它被浏览器保存并用于后续的请求中,让网站能够更好地向用户提供服务。 2. ASP.NET 如何操作 Cookie? ASP.NET 中…

    JavaScript 2023年6月10日
    00
  • JavaScript jquery及AJAX小结

    JavaScript jQuery及 AJAX小结 在对于 JavaScript、jQuery 和 AJAX 进行学习和使用时,可以以下这些知识点为核心来掌握。 JavaScript 基础语法 JavaScript 可以定义变量,条件语句(if…else…)、循环语句(for、while)、函数、对象等。 下面是定义一个变量并在控制台输出的示例代码:…

    JavaScript 2023年5月18日
    00
  • vue-router中hash模式与history模式的区别

    Vue-router是Vue.js官方的路由管理器,它可以轻松地为单页应用提供路由功能。在Vue-router中,路由模式分为hash模式和history模式,它们的区别如下: Hash模式 在浏览器中,hash(#)符号后面的所有字符都不会被发送到服务器,这使得单页应用成为现实。在Vue-router中,hash模式是默认的路由模式。 特点 URI的has…

    JavaScript 2023年6月11日
    00
  • jsp+servlet简单实现上传文件功能(保存目录改进)

    下面我会详细讲解“jsp+servlet简单实现上传文件功能(保存目录改进)”的完整攻略。 1. 基本介绍 在Java Web开发中,如果需要实现文件上传功能,可以使用jsp+servlet技术实现。具体实现过程中需要用到JDK提供的multipart/form-data类型数据处理方式。下面我们来看看如何实现。 2. 实现步骤 一、创建html页面,页面中…

    JavaScript 2023年6月10日
    00
  • WebWorker 封装 JavaScript 沙箱详情

    WebWorker是一种浏览器提供的JavaScript语言的多线程解决方案,它允许在后台运行长时间运算脚本而不会干扰用户界面,并且可以通过WebWorker进行线程之间的通信。 但是,在实际使用过程中,由于WebWorker并没有提供JS沙箱环境,如果在WebWorker中运行的JS脚本存在恶意代码,将会对用户数据造成威胁。 因此,我们需要在WebWork…

    JavaScript 2023年5月28日
    00
  • 给moz-firefox下添加IE方法和属性

    完整攻略:给moz-firefox下添加IE方法和属性 1. 前言 在开发前端工程时,我们常常需要考虑不同浏览器的兼容性。由于浏览器的实现技术不同,兼容性问题诸多。在开发过程中,为了适应不同的浏览器,我们会需要使用到浏览器的特定方法和属性。本文将介绍在moz-firefox下添加IE方法和属性的完整攻略。 2. 方案 我们可以使用浏览器对象检测技术(Brow…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部