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

针对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日

相关文章

  • JS取模、取商及取整运算方法示例

    JS取模、取商及取整运算方法示例 在JS中,有时需要对数字进行取模、取商或取整等运算操作。在本文中,我们将为大家详细讲解这些运算方法的实现方式以及示例。 取模运算 取模运算是指求两个数相除的余数,使用符号 % 进行操作。例如,7 % 3 求得的结果为 1,因为 7 ÷ 3 = 2 …… 1。其中,1 就是余数。 下面是一个实例: var a = 17…

    JavaScript 2023年5月27日
    00
  • 浅谈HTML5 Web Worker的使用

    HTML5 Web Worker是一个在HTML5规范下新增的技术,用于在Web应用程序中提供多线程支持,使得JavaScript线程可以在后台同时执行而不影响用户界面的渲染和响应。 Web Worker的使用需要几个步骤:1. 创建一个Web Worker对象2. 给Worker对象绑定一个JS文件,用于在Worker线程中执行3. 在主线程通过postM…

    JavaScript 2023年5月28日
    00
  • 分享纯手写漂亮的表单验证

    下面是关于如何分享纯手写漂亮的表单验证的完整攻略: 1. 为什么需要表单验证 在网站开发中,表单是非常重要的交互方式之一。表单用于收集和提交用户的数据,因此表单验证是非常必要的。表单验证可以确保用户输入的数据满足我们的需求,比如确保用户的邮箱格式正确、密码符合规范等。如果没有表单验证,那么用户可能会输入错误或者恶意的数据,造成网站数据的被破坏,或者影响用户使…

    JavaScript 2023年6月10日
    00
  • JavaScript中的工厂函数(推荐)

    当我们需要创建一些具有类似属性或方法的对象时,通常会使用构造函数或类来进行初始化。但是,这种方法有一些缺点,例如当我们需要创建多个具有相同属性或方法的对象时,我们需要重复编写相同的代码,这会导致代码冗余、可读性差和维护困难。这时,工厂函数就可以作为一个更加灵活和高效的方法来创建对象。 工厂函数的定义 工厂函数是一种函数,它返回一个新的对象,包含指定的属性和方…

    JavaScript 2023年5月27日
    00
  • 事件模型在各浏览器中存在差异

    事件模型是一种编程模型,用于处理图形用户界面(GUI)的事件响应。每个浏览器都有自己的事件模型实现,这意味着浏览器之间存在一些差异。在编写跨浏览器兼容性代码时,需要考虑这些差异。 以下是几种常见的事件模型: 1. DOM0模型 DOM0模型是最早的事件模型,它是在没有标准化的时候由Netscape Navigator引入的。在DOM0模型中,事件处理程序被直…

    JavaScript 2023年6月10日
    00
  • js 事件对象 鼠标滚轮效果演示说明

    下面是关于“js 事件对象 鼠标滚轮效果演示说明”的完整攻略。 什么是事件对象 事件对象是处理事件的一种机制,通过事件对象可以获取事件的相关信息,包括事件类型、目标元素、鼠标坐标等。 当事件发生时,浏览器会自动生成一个事件对象,可以通过参数的方式将该事件对象传递给事件处理函数,在事件处理函数中就可以访问该事件对象。 以下是事件对象的一些常见属性: type:…

    JavaScript 2023年6月10日
    00
  • 三种方法让Response.Redirect在新窗口打开

    当使用Response.Redirect方法时,页面会在当前浏览器窗口中打开跳转的页面,如果需要在新的窗口中打开跳转页面,可以采用以下三种方法: 1. 在服务器端页面上使用ClientScript.RegisterStartupScript方法 使用ClientScript.RegisterStartupScript方法可以在服务器端页面上注册启动JavaS…

    JavaScript 2023年6月11日
    00
  • 理解javascript封装

    理解Javascript封装指的是掌握如何使用封装来保证代码的安全性和可维护性。封装是面向对象编程中重要的三大特性之一,通过封装我们可以隐藏对象的内部细节,使得外部调用方不需要了解对象的内部实现细节,从而提高代码的可靠性和可维护性。 封装的原则 封装的原则是“高内聚,低耦合”,即一个对象的内部属性和方法之间应该紧密关联,外部调用方不应该直接访问对象的内部属性…

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