十行HTML实现增强现实

2017/06/11 · HTML5 · 1
评论

本文由 伯乐在线 –
一杯哈希不加盐
翻译,艾凌风
校稿。未经许可,禁止转载!
英文出处:Alexandra
Etienne。欢迎加入翻译组。

你想通过网络实现增强现实吗?现在你只需要 10 行 HTML
代码!真的!让我带你看一看代码,非常简单。

我们最近发布了AR.js。你不需要安装任何应用,用你的手机通过网络就能体验到强大的增强现实。但让我们更进一步,看一下如何让你也创作出自己的增强现实体验。多亏了神奇的a-frame,最短的
AR.js 只有 10 行 HTML
代码。你可以在codepen看到在线版:

XHTML

<!– Augmented Reality on the Web in 10 lines of html!
–> <script
src=”;
<script
src=”;
<script>THREEx.ArToolkitContext.baseURL =
‘;
<body style=’margin : 0px; overflow: hidden;’> <a-scene
embedded artoolkit=’sourceType: webcam;’> <a-box position=’0 0.5
0′ material=’opacity: 0.5;’></a-box> <a-marker-camera
preset=’hiro’></a-marker-camera> </a-scene> </body>

1
2
3
4
5
6
7
8
9
10
<!– Augmented Reality on the Web in 10 lines of html! https://github.com/jeromeetienne/ar.js –>
<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
<script src="https://rawgit.com/jeromeetienne/ar.js/master/aframe/build/aframe-ar.js"></script>
<script>THREEx.ArToolkitContext.baseURL = ‘https://rawgit.com/jeromeetienne/ar.js/master/three.js/'</script>
<body style=’margin : 0px; overflow: hidden;’>
    <a-scene embedded artoolkit=’sourceType: webcam;’>
        <a-box position=’0 0.5 0′ material=’opacity: 0.5;’></a-box>
        <a-marker-camera preset=’hiro’></a-marker-camera>
    </a-scene>
</body>

我们来一行一行看.

你想通过网络实现增强现实吗?现在你只需要 10 行 HTML
代码!真的!让我带你看一看代码,非常简单。

第三章 jQuery中的DOM操作,jquerydom

  DOM(Document Object
Model)文档对象模型,每张网页都能用DOM表示出来,每一份DOM都能看成一颗DOM树。

  jQuery继承了JavaScript对DOM对象操作的特性,使开发人员能方便地操作DOM对象。

  1.查找节点

图片 1<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ /> <title>3-1</title>
<!– 引入jQuery –> <script src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function () { var $para =
$(“p”); // 获取<p>节点 var p_txt = $para.attr(“title”); //
获取<p>元素节点属性title alert(p_txt); var $li = $(“ul
li:eq(1)”); // 获取第二个<li>元素节点 var ul_txt =
$li.attr(“title”); //
获取<ul>里的第二个<li>元素节点的属性title var li_txt =
$li.text(); // 获取第二个<li>元素节点的text alert(ul_txt);
alert(li_txt); }); //]]> </script> </head>
<body> <p title=”选择你最喜欢的水果.”
>你最喜欢的水果是?</p> <ul> <li
title=’苹果’>苹果</li> <li title=’橘子’>橘子</li>
<li title=’菠萝’>菠萝</li> </ul> </body>
</html> View Code

  2.创建节点

图片 2<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-2-1</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $li_1 =
$(“<li></li>”); // 创建第一个<li>元素 var $li_2 =
$(“<li></li>”); // 创建第二个<li>元素 var $parent =
$(“ul”); // 获取<ul>节点,<li>的父节点
$parent.append($li_1); // 添加到<ul>节点中,使之能在网页中显示
$parent.append($li_2); //
可以采取链式写法:$parent.append($li_1).append($li_2); }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 3<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-2-2</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $li_1 =
$(“<li>香蕉</li>”); //
创建一个<li>元素,包括元素节点和文本节点
//“香蕉”就是创建的文本节点。 var $li_2 =
$(“<li>雪梨</li>”); //
创建一个<li>元素,包括元素节点和文本节点
//“雪梨”就是创建的文本节点。 var $parent = $(“ul”); //
获取<ul>节点。<li>的父节点 $(“ul”).append($li_1); //
添加到<ul>节点中,使之能在网页中显示 $(“ul”).append($li_2); //
添加到<ul>节点中,使之能在网页中显示 }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 4<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-2-3</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $li_1 =
$(“<li title=’香蕉’>香蕉</li>”); //创建一个<li>元素
//包括元素节点,文本节点和属性节点 //其中title=’香蕉’ 就是创建的属性节点
var $li_2 = $(“<li title=’雪梨’>雪梨</li>”);
//创建一个<li>元素 //包括元素节点,文本节点和属性节点
//其中title=’雪梨’ 就是创建的属性节点 var $parent = $(“ul”); //
获取<ul>节点。<li>的父节点 $parent.append($li_1); //
添加到<ul>节点中,使之能在网页中显示 $parent.append($li_2); //
等价于:$parent.append($li_1).append($li_2); }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  3.插入节点

图片 5<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-3-1</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $li_1 =
$(“<li title=’香蕉’>香蕉</li>”); // 创建第一个<li>元素
var $li_2 = $(“<li title=’雪梨’>雪梨</li>”); //
创建第二个<li>元素 var $li_3 = $(“<li
title=’其它’>其它</li>”); // 创建第三个<li>元素 var
$parent = $(“ul”); // 获取<ul>节点,即<li>的父节点 var
$two_li = $(“ul li:eq(1)”); //
获取<ul>节点中第二个<li>元素节点 $parent.append($li_1); //
append方法将创建的第一个<li>元素添加到父元素的最后面
$parent.prepend($li_2); //
prepend方法将创建的第二个<li>元素添加到父元素里的最前面
$li_3.insertAfter($two_li); //
insertAfter方法将创建的第三个<li>元素元素插入到获取的<li>之后
}); //]]> </script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 6<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-3-2</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $one_li =
$(“ul li:eq(1)”); // 获取<ul>节点中第二个<li>元素节点 var
$two_li = $(“ul li:eq(2)”); //
获取<ul>节点中第三个<li>元素节点
$two_li.insertBefore($one_li); //移动节点 }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  4.删除节点

图片 7<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-4-1</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ $(“ul
li:eq(1)”).remove(); //
获取第二个<li>元素节点后,将它从网页中删除。 }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 8<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-4-2</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $li =
$(“ul li:eq(1)”).remove(); //
获取第二个<li>元素节点后,将它从网页中删除。 $li.appendTo(“ul”);
// 把刚才删除的又重新添加到<ul>元素里
//所以,删除只是从网页中删除,在jQuery对象中,这个元素还是存在的,我们可以重新获取它
}); //]]> </script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 9<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-4-3</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ $(“ul
li”).remove(“li[title!=菠萝]”);
//把<li>元素中属性title不等于”菠萝”的<li>元素删除 });
//]]> </script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 10<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-4-4</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ $(“ul
li:eq(1)”).empty(); //
找到第二个<li>元素节点后,清空此元素里的内容 }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  5.复制节点

图片 11<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-5-1</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> $(function(){ $(“ul li”).click(function(){
$(this).clone().appendTo(“ul”); //
复制当前点击的节点,并将它追加到<ul>元素 }) }); </script>
</head> <body> <p title=”选择你最喜欢的水果.”
>你最喜欢的水果是?</p> <ul> <li
title=’苹果’>苹果</li> <li title=’橘子’>橘子</li>
<li title=’菠萝’>菠萝</li> </ul> </body>
</html> View Code
图片 12<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-5-2</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> $(function(){ $(“ul li”).click(function(){
$(this).clone(true).appendTo(“ul”); // 注意参数true
//可以复制自己,并且他的副本也有同样功能。 }) }); </script>
</head> <body> <p title=”选择你最喜欢的水果.”
>你最喜欢的水果是?</p> <ul> <li
title=’苹果’>苹果</li> <li title=’橘子’>橘子</li>
<li title=’菠萝’>菠萝</li> </ul> </body>
</html> View Code

  6.替换节点

图片 13<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ /> <title>3-6</title>
<!– 引入jQuery –> <script src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
$(“p”).replaceWith(“<strong>你最不喜欢的水果是?</strong>”);
// 同样的实现:
$(“<strong>你最不喜欢的水果是?</strong>”).replaceAll(“p”);
}); //]]> </script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  7.包裹节点

图片 14<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-7-1</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
$(“strong”).wrap(“<b></b>”);//用<b>元素把<strong>元素包裹起来
}); //]]> </script> </head> <body> <strong
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</strong>
<ul> <li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 15<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-7-2</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
$(“strong”).wrap(“<b></b>”); }); //]]> </script>
</head> <body> <strong title=”选择你最喜欢的水果.”
>你最喜欢的水果是?</strong> <strong
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</strong>
<ul> <li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 16<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-7-3</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
$(“strong”).wrapAll(“<b></b>”); }); //]]>
</script> </head> <body> <strong
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</strong>
<strong title=”选择你最喜欢的水果.”
>你最喜欢的水果是?</strong> <ul> <li
title=’苹果’>苹果</li> <li title=’橘子’>橘子</li>
<li title=’菠萝’>菠萝</li> </ul> </body>
</html> View Code
图片 17<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-7-4</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
$(“strong”).wrapInner(“<b></b>”); }); //]]>
</script> </head> <body> <strong
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</strong>
<ul> <li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  8.属性操作

图片 18<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ /> <title>3-8</title>
<!– 引入jQuery –> <script src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
//设置<p>元素的属性’title’ $(“input:eq(0)”).click(function(){
$(“p”).attr(“title”,”选择你最喜欢的水果.”); });
//获取<p>元素的属性’title’ $(“input:eq(1)”).click(function(){
alert( $(“p”).attr(“title”) ); }); //删除<p>元素的属性’title’
$(“input:eq(2)”).click(function(){ $(“p”).removeAttr(“title”); }); });
//]]> </script> </head> <body> <input
type=”button” value=”设置<p>元素的属性’title'”/> <input
type=”button” value=”获取<p>元素的属性’title'”/> <input
type=”button” value=”删除<p>元素的属性’title'”/> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  9.样式操作

图片 19<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-9-1</title> <style type=”text/css”> .high{
font-weight:bold; /* 粗体字 */ color : red; /* 字体颜色设置红色*/ }
.another{ font-style:italic; color:blue; } </style> <!–
引入jQuery –> <script src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function () { //获取样式
$(“input:eq(0)”).click(function () { alert($(“p”).attr(“class”)); });
//设置样式 $(“input:eq(1)”).click(function () { $(“p”).attr(“class”,
“high”); }); //追加样式 $(“input:eq(2)”).click(function () {
$(“p”).addClass(“another”); }); //删除全部样式
$(“input:eq(3)”).click(function () { $(“p”).removeClass(); });
//删除指定样式 $(“input:eq(4)”).click(function () {
$(“p”).removeClass(“high”); }); //重复切换样式
$(“input:eq(5)”).click(function () { $(“p”).toggleClass(“another”); });
//判断元素是否含有某样式 $(“input:eq(6)”).click(function () {
alert($(“p”).hasClass(“another”)); alert($(“p”).is(“.another”)); //同上
}); }); //]]> </script> </head> <body> <input
type=”button” value=”输出class类”/> <input type=”button”
value=”设置class类”/> <input type=”button”
value=”追加class类”/> <input type=”button”
value=”删除全部class类”/> <input type=”button”
value=”删除指定class类”/> <input type=”button”
value=”重复切换class类”/> <input type=”button”
value=”判断元素是否含有某个class类”/> <p class=”myClass”
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  10.设置获取HTML,文本和值

图片 20<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-10-1</title> <style type=”text/css”> .test{
font-weight:bold; color : red; } .add{ font-style:italic; }
</style> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
//获取<p>元素的HTML代码 $(“input:eq(0)”).click(function(){ alert(
$(“p”).html() ); }); //获取<p>元素的文本
$(“input:eq(1)”).click(function(){ alert( $(“p”).text() ); });
//设置<p>元素的HTML代码 $(“input:eq(2)”).click(function(){
$(“p”).html(“<strong>你最喜欢的电影是?</strong>”); });
//设置<p>元素的文本 $(“input:eq(3)”).click(function(){
$(“p”).text(“你最喜欢的球星是?”); }); //设置<p>元素的文本
$(“input:eq(4)”).click(function(){
$(“p”).text(“<strong>你最喜欢的游戏是?</strong>”); });
//获取按钮的value值 $(“input:eq(5)”).click(function(){ alert(
$(this).val() ); }); //设置按钮的value值
$(“input:eq(6)”).click(function(){ $(this).val(“我被点击了!”); }); });
//]]> </script> </head> <body> <input
type=”button” value=”获取<p>元素的HTML代码”/> <input
type=”button” value=”获取<p>元素的文本”/> <input
type=”button” value=”设置<p>元素的HTML代码”/> <input
type=”button” value=”设置<p>元素的文本”/> <input
type=”button” value=”设置<p>元素的文本(带HTML)”/> <input
type=”button” value=”获取按钮的value值”/> <input type=”button”
value=”设置按钮的value值”/> <p title=”选择你最喜欢的水果.”
><strong>你最喜欢的水果是?</strong></p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 21<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-10-2-1</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
$(“#address”).focus(function(){ // 地址框获得鼠标焦点 var txt_value =
$(this).val(); // 得到当前文本框的值 if(txt_value==”请输入邮箱地址”){
$(this).val(“”); // 如果符合条件,则清空文本框内容 } });
$(“#address”).blur(function(){ // 地址框失去鼠标焦点 var txt_value =
$(this).val(); // 得到当前文本框的值 if(txt_value==””){
$(this).val(“请输入邮箱地址”);// 如果符合条件,则设置内容 } })
$(“#password”).focus(function(){ var txt_value = $(this).val();
if(txt_value==”请输入邮箱密码”){ $(this).val(“”); } });
$(“#password”).blur(function(){ var txt_value = $(this).val();
if(txt_value==””){ $(this).val(“请输入邮箱密码”); } }) }); //]]>
</script> </head> <body> <input type=”text”
id=”address” value=”请输入邮箱地址”/> <br/><br/>
<input type=”text” id=”password” value=”请输入邮箱密码”/>
<br/><br/> <input type=”button” value=”登陆”/>
</body> </html> View
Code
图片 22<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-10-2-2</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function () {
$(“#address”).focus(function () { // 地址框获得鼠标焦点 var txt_value
= $(this).val(); // 得到当前文本框的值 if (txt_value ==
this.defaultValue) { $(this).val(“”); // 如果符合条件,则清空文本框内容
} }); $(“#address”).blur(function () { // 地址框失去鼠标焦点 var
txt_value = $(this).val(); // 得到当前文本框的值 if (txt_value == “”)
{ $(this).val(this.defaultValue); // 如果符合条件,则设置内容 } })
$(“#password”).focus(function () { var txt_value = $(this).val(); if
(txt_value == this.defaultValue) { $(this).val(“”); } });
$(“#password”).blur(function () { var txt_value = $(this).val(); if
(txt_value == “”) { $(this).val(this.defaultValue); } }) }); //]]>
</script> </head> <body> <input type=”text”
id=”address” value=”请输入邮箱地址”/> <br/><br/>
<input type=”text” id=”password” value=”请输入邮箱密码”/>
<br/><br/> <input type=”button” value=”登陆”/>
</body> </html> View
Code
图片 23<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-10-3</title> <style type=”text/css”> .test{
font-weight:bold; color : red; } .add{ font-style:italic; }
</style> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
//设置单选下拉框选中 $(“input:eq(0)”).click(function(){
$(“#single”).val(“选择2号”); }); //设置多选下拉框选中
$(“input:eq(1)”).click(function(){ $(“#multiple”).val([“选择2号”,
“选择3号”]); }); //设置单选框和多选框选中
$(“input:eq(2)”).click(function(){
$(“:checkbox”).val([“check2″,”check3”]);
$(“:radio”).val([“radio2″]); }); }); //]]> </script>
</head> <body> <input type=”button”
value=”设置单选下拉框选中”/> <input type=”button”
value=”设置多选下拉框选中”/> <input type=”button”
value=”设置单选框和多选框选中”/> <br/><br/> <select
id=”single”> <option>选择1号</option>
<option>选择2号</option>
<option>选择3号</option> </select> <select
id=”multiple” multiple=”multiple” style=”height:120px;”> <option
selected=”selected”>选择1号</option>
<option>选择2号</option>
<option>选择3号</option>
<option>选择4号</option> <option
selected=”selected”>选择5号</option> </select>
<br/><br/> <input type=”checkbox” value=”check1″/>
多选1 <input type=”checkbox” value=”check2″/> 多选2 <input
type=”checkbox” value=”check3″/> 多选3 <input type=”checkbox”
value=”check4″/> 多选4 <br/> <input type=”radio”
value=”radio1″/> 单选1 <input type=”radio” value=”radio2″/>
单选2 <input type=”radio” value=”radio3″/> 单选3 </body>
</html> View Code
图片 24<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-10-4</title> <style type=”text/css”> .test{
font-weight:bold; color : red; } .add{ font-style:italic; }
</style> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
//设置单选下拉框选中 $(“input:eq(0)”).click(function(){ $(“#single
option”).removeAttr(“selected”); //移除属性selected $(“#single
option:eq(1)”).attr(“selected”,true); //设置属性selected });
//设置多选下拉框选中 $(“input:eq(1)”).click(function(){ $(“#multiple
option”).removeAttr(“selected”); //移除属性selected $(“#multiple
option:eq(2)”).attr(“selected”,true);//设置属性selected $(“#multiple
option:eq(3)”).attr(“selected”,true);//设置属性selected });
//设置单选框和多选框选中 $(“input:eq(2)”).click(function(){
$(“:checkbox”).removeAttr(“checked”); //移除属性checked
$(“:radio”).removeAttr(“checked”); //移除属性checked
$(“[value=check2]:checkbox”).attr(“checked”,true);//设置属性checked
$(“[value=check3]:checkbox”).attr(“checked”,true);//设置属性checked
$(“[value=radio2]:radio”).attr(“checked”,true);//设置属性checked });
}); //]]> </script> </head> <body> <input
type=”button” value=”设置单选下拉框选中”/> <input type=”button”
value=”设置多选下拉框选中”/> <input type=”button”
value=”设置单选框和多选框选中”/> <br/><br/> <select
id=”single”> <option>选择1号</option>
<option>选择2号</option>
<option>选择3号</option> </select> <select
id=”multiple” multiple=”multiple” style=”height:120px;”> <option
selected=”selected”>选择1号</option>
<option>选择2号</option>
<option>选择3号</option>
<option>选择4号</option> <option
selected=”selected”>选择5号</option> </select>
<br/><br/> <input type=”checkbox” value=”check1″/>
多选1 <input type=”checkbox” value=”check2″/> 多选2 <input
type=”checkbox” value=”check3″/> 多选3 <input type=”checkbox”
value=”check4″/> 多选4 <br/> <input type=”radio”
value=”radio1″ name=”a”/> 单选1 <input type=”radio” value=”radio2″
name=”a”/> 单选2 <input type=”radio” value=”radio3″ name=”a”/>
单选3 </body> </html> View Code

  11.遍历节点

图片 25<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-11-1</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $body =
$(“body”).children(); var $p = $(“p”).children(); var $ul =
$(“ul”).children(); alert( $body.length ); //
<body>元素下有2个子元素 alert( $p.length ); //
<p>元素下有0个子元素 alert( $ul.length ); //
<p>元素下有3个子元素 for(var i=0;i< $ul.length;i++){ alert(
$ul[i].innerHTML ); } }); //]]> </script> </head>
<body> <p title=”选择你最喜欢的水果.”
>你最喜欢的水果是?</p> <ul> <li
title=’苹果’>苹果</li> <li title=’橘子’>橘子</li>
<li title=’菠萝’>菠萝</li> </ul> </body>
</html> View Code
图片 26<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-11-2</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){ var $p1 =
$(“p”).next(); alert( $p1.html() ); // 紧邻<p>元素后的同辈元素 var
$ul = $(“ul”).prev(); alert( $ul.html() ); //
紧邻<ul>元素前的同辈元素 var $p2 = $(“p”).siblings(); alert(
$p2.html() ); // 紧邻<p>元素的唯一同辈元素 }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code
图片 27<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-11-3</title> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function () {
$(document).bind(“click”, function (e) {
$(e.target).closest(“li”).css(“color”, “red”); }) }); //]]>
</script> </head> <body> <p
title=”选择你最喜欢的水果.” >你最喜欢的水果是?</p> <ul>
<li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

  12.CSS-DOM操作

图片 28<!DOCTYPE
html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html> <head> <meta http-equiv=”Content-Type”
content=”text/html; charset=utf-8″ />
<title>3-12-1</title> <style type=”text/css”> .test{
font-weight:bold; color : red; } .add{ font-style:italic; }
</style> <!– 引入jQuery –> <script
src=”../../scripts/jquery-1.3.1.js”
type=”text/javascript”></script> <script
type=”text/javascript”> //<![CDATA[ $(function(){
//获取<p>元素的color $(“input:eq(0)”).click(function(){ alert(
$(“p”).css(“color”) ); }); //设置<p>元素的color
$(“input:eq(1)”).click(function(){ $(“p”).css(“color”,”red”) });
//设置<p>元素的fontSize和backgroundColor
$(“input:eq(2)”).click(function(){ $(“p”).css({“fontSize”:”30px”
,”backgroundColor”:”#888888″}) }); //获取<p>元素的高度
$(“input:eq(3)”).click(function(){ alert( $(“p”).height() ); });
//获取<p>元素的宽度 $(“input:eq(4)”).click(function(){ alert(
$(“p”).width() ); }); //获取<p>元素的高度
$(“input:eq(5)”).click(function(){ $(“p”).height(“100px”); });
//获取<p>元素的宽度 $(“input:eq(6)”).click(function(){
$(“p”).width(“400px”); }); //获取<p>元素的的左边距和上边距
$(“input:eq(7)”).click(function(){ var offset = $(“p”).offset(); var
left = offset.left; var top = offset.top;
alert(“left:”+left+”;top:”+top); }); }); //]]> </script>
</head> <body> <input type=”button”
value=”获取<p>元素的color”/> <input type=”button”
value=”设置<p>元素的color”/> <input type=”button”
value=”设置<p>元素的fontSize和backgroundColor”/> <input
type=”button” value=”获取<p>元素的高度”/> <input
type=”button” value=”获取<p>元素的宽度”/> <input
type=”button” value=”设置<p>元素的高度”/> <input
type=”button” value=”设置<p>元素的宽度”/> <input
type=”button” value=”获取<p>元素的的左边距和上边距”/> <p
title=”选择你最喜欢的水果.”><strong>你最喜欢的水果是?</strong></p>
<ul> <li title=’苹果’>苹果</li> <li
title=’橘子’>橘子</li> <li title=’菠萝’>菠萝</li>
</ul> </body> </html> View Code

 PS:参考文献《锋利的jQuery》

引入库

XHTML

<script
src=”;
<script
src=”;
<script>THREEx.ArToolkitContext.baseURL =
‘;

1
2
3
<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
<script src="https://rawgit.com/jeromeetienne/ar.js/master/aframe/build/aframe-ar.js"></script>
<script>THREEx.ArToolkitContext.baseURL = ‘https://rawgit.com/jeromeetienne/ar.js/master/three.js/'</script>

首先,你需要引入a-frame,一款MozillaVR引领的开发
VR 体验的利器。A-frame 包含了 three.js。然后你只需要为 a-frame 引入
AR.js。AR.js能让 AR 中的 3d 显示在你的手机上高速运行,哪怕是 2、3
年前的旧手机。

我们最近发布了AR.js。你不需要安装任何应用,用你的手机通过网络就能体验到强大的增强现实。但让我们更进一步,看一下如何让你也创作出自己的增强现实体验。多亏了神奇的a-frame,最短的
AR.js只有10行HTML 代码。

对于jquery一些问题

哇哦,我帮你写代码:
<script type=”text/javascript”>
$(function(){
$(“.has_children”).click(function(){
$(this).addClass(“highlight”)
.children(“a”).show().end()
.siblings().removeClass(“highlight”)
.children(“a”).hide();
});

});

定义 Body

XHTML

<body style=’margin : 0px; overflow: hidden;’> <!– … –>
</body>

1
2
3
<body style=’margin : 0px; overflow: hidden;’>
    <!– … –>
</body>

这一步,国际惯例。就像你在所有 HTML 页面中做的一样,定义 body。

图片 29

</script>

看出来去别的吗?一定要加在:
$(function(){ })
的函数内。

你之所以没效果,是因为你绑定事件的时候 ,dom 节点根本不存在。
而 $(function(){ }) 这个函数的意思是,当 所有 html

创建 3d 场景

XHTML

<a-scene embedded artoolkit=’sourceType: webcam;’> <!– put
your 3d content here –> </a-scene>

1
2
3
<a-scene embedded artoolkit=’sourceType: webcam;’>
    <!– put your 3d content here –>
</a-scene>

然后,我们将要创建我们的 a-farme 场景。我们当然也需要加入 ARToolkit
组件。ARToolkit是一个开源库,我们通过它来实现摄像头定位。

引入库

文本加载渲染完毕的时候,才开始执行。

^_* ,这样可以设为最佳了吧?谢谢哦
 

添加简单的内容

XHTML

<a-box position=’0 0.5 0′ material=’opacity: 0.5;’></a-box>

1
<a-box position=’0 0.5 0′ material=’opacity: 0.5;’></a-box>

一旦我们创建了 3d
场景,我们可以开始向里面添加对象。在这行代码中,我们添加了一个简单的盒子。然后我们修改了它的材质,让它变得透明。我们也改变了它的位置,所以它出现在
AR 标识(AR marker)的上方。

(视频截图)

图片 30

图片 31

jQuery:这里是怎实现?原代码没看懂

你这段代码中jquery只是处理了,<span>的click事件。
当click发生时,只显示大标题,并且点击了哪个大标题,就会显示其下相应的小标题。

至于为什么一进入页面就显示大标题,可能跟你的css有关系吧。
 

jQuery中的DOM操作,jquerydom DOM(Document
Object
Model)文档对象模型,每张网页都能用DOM表示出来,每一份DOM都能看成一颗DOM树。
jQuery继承…

增加 AR 摄像头

XHTML

<a-marker-camera preset=’hiro’></a-marker-camera>

1
<a-marker-camera preset=’hiro’></a-marker-camera>

在最后一步,我们增加一个摄像头。我们预设一个 ‘hiro’(来自Hiro
marker)最后,我们让它像你手机一样移动。是不是很简单?

恭喜!你完成了。你仅用了 10 行 HTML
代码实现了增强现实,手机上也能运行飞快,而且免费。

可以看一下我做的视频教程(搬运自youtube,字幕为 youtube
自动识别内嵌字幕,有少量识别误差,不影响观看):

(一些截图)

图片 32

打赏支持我翻译更多好文章,谢谢!

打赏译者

首先,你需要引入a-frame,一款MozillaVR引领的开发 VR 体验的利器。A-frame
包含了 three.js。然后你只需要为 a-frame 引入 AR.js。AR.js能让 AR 中的 3d
显示在你的手机上高速运行,哪怕是 2、3 年前的旧手机。

打赏支持我翻译更多好文章,谢谢!

任选一种支付方式

图片 33
图片 34

2 赞 8 收藏 1
评论

定义 Body

发表评论

电子邮件地址不会被公开。 必填项已用*标注