实现一个简单的网页(缩略词表、文献来源链接、快速访问键列表)

9 篇文章 0 订阅
7 篇文章 0 订阅

1)html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
		<link rel="stylesheet" type="text/css" media="screen" href="styles/typography.css"/>
		<title>Explaining the Document Object Model</title>
		<script type="text/javascript" src="scripts/addLoadEvent.js"></script>
		<script type="text/javascript" src="scripts/displayAbbreviations.js"></script>
		<script type="text/javascript" src="scripts/displayCitations.js"></script>
		<script type="text/javascript" src="scripts/displayAccessKeys.js"></script>		
	</head>
	<body>
		<ul id="navigation">
			<li><a href="index.html" accesskey="1">Home</a></li>
			<li><a href="search.html" accesskey="4">Search</a></li>
			<li><a href="contact.html" accesskey="9">Contact</a></li>
		</ul>
		<h1>What is the Document Object Model?</h1>
		<p>
		The <abbr title="World Wid Web Consortium">W3C</abbr> defines
		the <abbr title="Document Object Model">DOM</abbr> as:
		</p>
		<blockquote cite="http://www.w3.org/DOM/">
		<p>
		A platform- and language-neutral interface that will allow programs and scripts
		to dynamically access and update the content, structure and style of documents.
		</p>
		</blockquote>
		<p>
		It is an <abbr title="Application Programming Interface">API</abbr> 
		that can be used to navigate <abbr title="HyperText Markup Language">HTML</abbr>
		and <abbr title="eXtensible Markup Language">XML</abbr> documents.
		</p>
	</body>
</html>

2)css:

body{
	font-family:"Helvetica","Arial",sans-serif;
	font-size:10pt;
}
abbr{
	text-decoration:none;
	border:0;
	font-style:normal;
}

3)js:

①添加函数到window.onload事件

/*
simply use window.οnlοad=function(){...}
An alternative way:
*/

function addLoadEvent(func){  
    var oldοnlοad=window.onload;  
    if(typeof window.onload!='function'){  
        window.οnlοad=func;  
    }  
    else{  
        window.οnlοad=function(){  
            oldonload();  
            func();  
        }  
    }  
}

/*
window.οnlοad=function(){
	displayCitations();
	displayAbbreviations();
}
*/

②显示缩略词表

function displayAbbreviations(){
	if(!document.getElementsByTagName||!document.createElement||!document.createTextNode) 
		return false;
	var abbreviations=document.getElementsByTagName("abbr");
	if(abbreviations.length<1) return false;
	var defs=new Array();
	for(var i=0;i<abbreviations.length;i++){
		var current_abbr=abbreviations[i];
		if(current_abbr.childNodes.length<1) continue;
		var definition=current_abbr.getAttribute("title");
		var key=current_abbr.firstChild.nodeValue;
		defs[key]=definition;//如:dfs[W3C]=World Wide Web Consortium
	}
	var dlist=document.createElement("dl");
	for(key in defs){
		var definition=defs[key];
		var dtitle=document.createElement("dt");
		var dtitle_text=document.createTextNode(key);
		dtitle.appendChild(dtitle_text);
		var ddesc=document.createElement("dd");
		var ddesc_text=document.createTextNode(definition);
		ddesc.appendChild(ddesc_text);
		dlist.appendChild(dtitle);
		dlist.appendChild(ddesc);
	}
	if(dlist.childNodes.length<1) return false;
	var header=document.createElement("h2");
	var header_text=document.createTextNode("Abbreviations");
	header.appendChild(header_text);
	document.body.appendChild(header);
	document.body.appendChild(dlist);
}

addLoadEvent(displayAbbreviations);

③显示引用链接

function displayCitations(){
	var quotes=document.getElementsByTagName("blockquote");
	for(var i=0;i<quotes.length;i++){
		if(!quotes[i].getAttribute("cite")) continue;
		var url=quotes[i].getAttribute("cite");
		var quoteChildren=quotes[i].getElementsByTagName("*");
		if(quoteChildren.length<1) continue;
		var elem=quoteChildren[quoteChildren.length-1];
		var link=document.createElement("a");
		var link_text=document.createTextNode("source");
		link.appendChild(link_text);
		link.setAttribute("href",url);
		var superscript=document.createElement("sup");
		superscript.appendChild(link);
		elem.appendChild(superscript);
	}
}

addLoadEvent(displayCitations);

④显示快速访问键列表

function displayAccessKeys(){
	var links=document.getElementsByTagName("a");
	var akeys=new Array();
	for(var i=0;i<links.length;i++){
		var current_link=links[i];
		if(!current_link.getAttribute("accesskey")) continue;
		var key=current_link.getAttribute("accesskey");
		var text=current_link.lastChild.nodeValue;
		akeys[key]=text;//eg. akeys[1]=Home
	}
	var list=document.createElement("ul");
	for(key in akeys){
		var text=akeys[key];
		var str=key+":"+text;
		var item=document.createElement("li");
		var item_text=document.createTextNode(str);
		item.appendChild(item_text);
		list.appendChild(item);
	}
	var header=document.createElement("h3");
	var header_text=document.createTextNode("Accesskeys");
	header.appendChild(header_text);
	document.body.appendChild(header);
	document.body.appendChild(list);
}

addLoadEvent(displayAccessKeys);
效果:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的利用d3.js实现的小型缩略图示例代码: ```javascript // 设置主图的宽高 var mainWidth = 500, mainHeight = 500; // 设置缩略图的宽高 var previewWidth = 100, previewHeight = 100; // 创建主图的svg元素 var mainSvg = d3.select("#main") .append("svg") .attr("width", mainWidth) .attr("height", mainHeight); // 创建主图的矩形元素 mainSvg.append("rect") .attr("width", mainWidth) .attr("height", mainHeight) .style("fill", "lightblue"); // 创建缩略图的svg元素 var previewSvg = d3.select("#preview") .append("svg") .attr("width", previewWidth) .attr("height", previewHeight); // 创建缩略图的矩形元素 previewSvg.append("rect") .attr("width", previewWidth) .attr("height", previewHeight) .style("fill", "lightblue"); // 创建缩略图的框选区域 var brush = d3.brush() .extent([[0, 0], [previewWidth, previewHeight]]) .on("end", brushed); // 将框选区域添加到缩略图上 previewSvg.append("g") .attr("class", "brush") .call(brush); // 定义框选事件的回调函数 function brushed() { var selection = d3.event.selection; // 如果没有框选区域,则返回 if (!selection) return; // 计算主图的缩放比例 var xScale = mainWidth / selection[0]; var yScale = mainHeight / selection[1]; // 设置主图的缩放和位移 mainSvg.attr("transform", "translate(" + (-selection[0] * xScale) + "," + (-selection[1] * yScale) + ") scale(" + xScale + "," + yScale + ")"); } ``` 在以上代码,我们首先创建了一个宽高为500x500的主图和一个宽高为100x100的缩略图。然后,我们创建了一个框选区域并将其添加到缩略图上。最后,我们定义了框选事件的回调函数,其计算了主图的缩放比例并设置了主图的缩放和位移。 该示例的框选区域可以通过鼠标拖动进行移动和缩放,并且主图会随着缩略图的框选而进行相应的缩放和位移。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值