HTML5使用CSS3创建元素动画,并将内容注入到DOM中

HTML5 是一种适用于 Web 的复杂编程平台,具有强大的功能,比如 canvas元素、">CSS3 和一个事件模型。HTML5 提供了您实现自己的组件所需的所有基础功能。

本文延续本系列的 第 1 期中关于滑块组件的讨论。您将学习如何合并事件监听器,如何创建滑块手柄的动画,以及如何将滑块本身注入现有的 DOM 树中。具体而言,您将学习如何:

对滑块使用备用控件 实现对注册和触发变更监听器的支持 使用 CSS3 过渡为 HTML 元素创建动画 将内容注入 DOM 树中 使用元素属性自定义专有组件

备用滑块控件

图 1显示了来自 第 1 部分的使用滑块组件的简单应用程序的一个变体。该变体使用链接代替按钮,以递增和递减滑块的值。对于这些控件,可使用任何生成鼠标单击事件的元素。

图 1. 使用链接代替按钮

用户也可单击滑块的滑轨或拖动它的手柄来更改它的值。第 1 部分中的 “拖动手柄” 一节解释了滑块如何简化其拖动。在本文的 “为滑块手柄创建动画” 一节中,您将看到在用户单击滑块的滑轨时,滑块如何通过 CSS3 过渡来调整手柄的位置。

清单 1显示了 图 1中所示的应用程序的 HTML。

清单 1. 包含链接而不是按钮的滑块应用程序的 HTML

<html> <head> ... <head> <body> <div id='slider-component'> <div id='controls'> <a href='#'class='slider-control' id='decrement'>-</a> <a href='#'class='slider-control' id='increment'>+</a> <div id='slider'> <!-- slider goes here--> </div> </div> <div id='readout'>0</div> </div> </body> <script type="text/javascript" src="lib/slider.js"></script> <script type="text/javascript" src="sliderExample.js"></script> </html>

清单 1中的 HTML 简单易懂。两个链接和两个滑块位于一个 controls DIV中,后者位于一个 slider-component DIV中。当用户单击某个链接时,应用程序的 JavaScript 就会处理单击事件,如 清单 2中所示。

清单 2. 链接单击事件

var slider = new COREHTML5.Slider('black', 'cornflowerblue', 0), ... document.getElementById('decrement').onclick=
function (e) { slider.knobPercent -= 0.1; slider.redraw(); updateReadout(); } document.getElementById('increment').onclick= function (e) { slider.knobPercent += 0.1; slider.redraw(); updateReadout(); }

清单 2中的事件处理函数递增和递减滑块的值(存储在滑块的 knobPercent属性中),重新绘制滑块,并更新 readout元素。

滑块的值发生更改时,应用程序会使用附加到滑块的一个更改监听器来更新 readout元素,如 清单 3中所示。

清单 3. 滑块更改事件

var readoutElement = document.getElementById('readout'); function updateReadout() { if (readoutElement) readoutElement.innerHTML = slider.knobPercent.toFixed(2); } slider.addChangeListener(updateReadout);

请注意,readout 元素是可选的;如果该元素不存在,那么 updateReadout()方法不会执行任何操作。

下一节将会介绍滑块如何实现对更改监听器的支持。

图 1中所示的应用程序使用了滑块的 appendTo()方法,将滑块附加到 DOM:

slider.appendTo('slider'); // Append the slider to the DOM element with an ID of slider slider.draw();

本文将在 “将滑块附加到 DOM 元素” 一节中讨论该方法的实现。

时间: 2024-10-21 13:15:38

HTML5使用CSS3创建元素动画,并将内容注入到DOM中的相关文章

使用HTML5 和CSS3创建现代Web站点

开始之前本教程假定您具有 HTML.CSS 和 JavaScript 的一些基本经验.假定您知道什么是 HTML 元素或标记.属性表示什么.HTML 标记的基本语法.Web 页面的常规结构等等.关于 CSS,您应该熟悉元素.类.以及基于 ID 的选择器.CSS 特性的语法以及如何使用内嵌或外部样式表在您的 Web 页面中包括 CSS.最后,假定您具有一些 JavaScript 的工作知识,例如什么是变量.函数.if 语句和 for 循环以及如何在您的 Web 页面中包括 JavaScript 代

HTML5+CSS3构建的动画切换

  有开发者表示,HTML5将给个人开发者带来更多机遇.下面的稿件详细描述了一个唯美的动画效果,它实现了在同一个页面中进行登录表单和注册表单的转换.这些效果,完全由HTML5和CSS3实现.文章后面附上了三种不同风格的显示转换效果.以及源码下载.既可为网页瘦身,又可实现漂亮的网页效果,快快收藏吧. 这篇稿件将描述如何在HTML5中,使用CSS3的目标伪类":target"来创建注册和登录两个表单.并实现它们在同一个页面中的显示转换.此演示目的是向用户展示从登录表单点击标注有"

css3+html5实现太阳系行星公转动画实例

模拟太阳系行情公转动画最终的效果图如下: css3的animation是通过关键帧的形式做出来的,首先设定一个动画的运行时间,然后在这个时间轴上的若干位置处插入关键帧,浏览器根据关键帧设定的内容做过渡动画.animation一般结合transform属性进行制作.以一个简单的例子说明,以一个div,让其从左到右运动,如下图左所未(需要点下图片播放) 先用css画出静态的图,然后再加动画的属性.整个工程完整的代码见这个Demo.html如下: <div class='space'>     &l

《响应式Web设计:HTML5和CSS3实践指南》——2.10节基于before及after伪元素添加字符

2.10 基于before及after伪元素添加字符 就像在电视剧<迷离时空>(The Twilight Zone)中遗失的一集一样,CSS提供的新属性赋予了使用者在内容中添加伪标记的能力.可能听起来会有点奇怪,但这种方法却有着众多的应用场景.例如一个场景是,需要在显示的时候把文本内容放进引号之中,但是同时不想在内容或者主题文件中添加这些引号,显然这样是比较明智的做法.或者你也想通过标签和@标记尝试时下流行的Twitter,例如想要在内容之前添加#或是@符号.采用CSS标记方法即可完成功能,呈

揭秘HTML5和CSS3【珍珠奶茶帮】

分享人:空雁 互联网的发展总是在不断地催生新技术的产生,而HTML5和CSS3是最近一直被讨论的热门话题,对于每个互联网开发者尤其是前端开发者而言,都充满了好奇与渴望.那么HTML5和CSS3究竟有哪些让我们眼前一亮的东西呢?我在WebRebuild北京交流会和珍珠奶茶帮上给大家分享了<揭秘 HTML5和CSS3>,PPT在这里: http://docs.google.com/present/view?id=dhpdbrp_51hf88z8g8 HTML5 HTML 5草案的前身名为Web A

CSS3+HTML5实例:HTML5和CSS3制作登录表单

文章简介:HTML5提供了一些新的元素可以让我们不用JS轻松实现实用的web表单,CSS3提供了很多新的特性,这些特性允许实现新的设计效果(比如动画.渐变等).  HTML5提供了一些新的元素可以让我们不用JS轻松实现实用的web表单,CSS3提供了很多新的特性,这些特性允许实现新的设计效果(比如动画.渐变等). 这里做了一个基于HTML5和CSS3的登录表单.实例代码使用到HTML5提供的一些表单新特性,所以你需要使用支持HTML5和CSS3的浏览器来查看. HTML5代码: <form id

HTML5和CSS3 Media Queries响应式Web设计方案

文章简介:通过CSS3 Media Query实现响应式Web设计. 十一长假已然过去了一大半.今天倒真是晴朗的不行,向窗外望去几乎可以看到阳光穿过凉爽的空气一缕缕洒落下来的样子.自从不再是学生,对每年的几次长假就无比珍惜,想方设法让每一天都尽量过的饱满一些:夜里闭上眼,满脑子就都是Drupal.博客.咖啡.使命召唤.南方公园...也许需要出门走一走了. OK开始说正经的了.在之前一篇译文中,我们了解了响应式Web设计的概念.组成要素以及基本的实现思路.今天继续相关话题,我们将从前文介绍过的"弹

《HTML5与CSS3实战指南》——2.2 基本的HTML5模板

2.2 基本的HTML5模板 在您学习HTML5和新技术时,您可能想创建自己的蓝图或示例文件,并通过它们来构建基于HTML5的项目.实际上,您可能对已存在的XHTML或HTML4.0项目已经做了类似的事情.我们鼓励您这样做,当然您也可以考虑使用一些在线资源,从而为您提供一个HTML5的基本起点1. 在这个项目中,我们将从头开始,编写自己的代码,并对每一部分进行详细讲解.当然,即使是最好.最庞大的示例网站也不可能包含所有的新元素和技术.我们也会详细讲解一些未在我们所创建的示例网站中应用的新功能.这

《HTML5与CSS3实战指南》——第1章 HTML5和CSS3简介1.1 什么是HTML5

第1章 HTML5和CSS3简介 本章将简要回顾HTML5和CSS3的发展历程,并介绍HTML5和CSS3对于现代网站及Web应用程序的重要性,以及如何应用这些技术. 当然,如果您希望直接进入创建项目的实质部分,并开始学习如何使用HTML5和CSS3的新技术及功能,您可以先跳到第2章,稍后再回到本章. 1.1 什么是HTML5 我们今天所理解的HTML5,它具有一段相对动荡的历史.您可能已经了解到HTML是万维网上用于描述网页内容及数据的主要标记语言.HTML5是此标记语言的最新版本,它包括新功