2007-05-17
如今,许多网站上都会用到统计表,于是我们需要为它们制作一些漂亮的图片来呈现,自然而然又想利用最少的带宽和最简单的标记。在把这些图片放到网页上的方法,一个是插入图片,一个是背景图片。

插入图片的代码固然简单,但是没有语义,跨平台的展示性并不强。那么背景图片呢,在更加没有语义的同时我们还要面临背景图片的两个问题:1.并非所有浏览器的默认设置是可以打印背景图片 2.用户不能复制图片中的数据到word文档或者outlook等其它编辑器。当然,我们可以告诉用户更改浏览器的打印设置,令其可以打印背景图片,但是要求用户这样做明显不是个好主意。接下来,我要介绍是另外一种方法,与以上两种方法完全不同哦~

什么是图表?

举个例子吧,比如:一个网站每月的浏览次数统计。我们需要画出一张下面这样的图表:
2006-09-18

本想来一例CSS耍宝二,看到这个js效果实在很酷,忍不住要拿出来与大家分享:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<title>用层模拟的小窗口(可拖动展合)</title>
<meta http-equiv=Content-Type content="text/html; charset=gb2312" />
<style type="text/css">
body {
 font-size: 12px
}
a:visited {
 color: slategray; text-decoration: none
}
a:hover {
 color: slategray; text-decoration: underline
}
alink {
 color: slategray; text-decoration: none
}
</style>
<script type="text/javascript">
<!--
//可以打包为js文件;
var x0=0,y0=0,x1=0,y1=0;
var offx=6,offy=6;
var moveable=false;
var hover='orange',normal='#336699';//color;
var index=10000;//z-index;
//开始拖动;
function startDrag(obj)
{
 if(event.button==1)
 {
  //锁定标题栏;
  obj.setCapture();
  //定义对象;
  var win = obj.parentNode;
  var sha = win.nextSibling;
  //记录鼠标和层位置;
  x0 = event.clientX;
  y0 = event.clientY;
  x1 = parseInt(win.style.left);
  y1 = parseInt(win.style.top);
  //记录颜色;
  normal = obj.style.backgroundColor;
  //改变风格;
  obj.style.backgroundColor = hover;
  win.style.borderColor = hover;
  obj.nextSibling.style.color = hover;
  sha.style.left = x1 + offx;
  sha.style.top  = y1 + offy;
  moveable = true;
 }
}
//拖动;
function drag(obj)
{
 if(moveable)
 {
  var win = obj.parentNode;
  var sha = win.nextSibling;
  win.style.left = x1 + event.clientX - x0;
  win.style.top  = y1 + event.clientY - y0;
  sha.style.left = parseInt(win.style.left) + offx;
  sha.style.top  = parseInt(win.style.top) + offy;
 }
}
//停止拖动;
function stopDrag(obj)
{
 if(moveable)
 {
  var win = obj.parentNode;
  var sha = win.nextSibling;
  var msg = obj.nextSibling;
  win.style.borderColor     = normal;
  obj.style.backgroundColor = normal;
  msg.style.color           = normal;
  sha.style.left = obj.parentNode.style.left;
  sha.style.top  = obj.parentNode.style.top;
  obj.releaseCapture();
  moveable = false;
 }
}
//获得焦点;
function getFocus(obj)
{
 if(obj.style.zIndex!=index)
 {
  index = index + 2;
  var idx = index;
  obj.style.zIndex=idx;
  obj.nextSibling.style.zIndex=idx-1;
 }
}
//最小化;
function min(obj)
{
 var win = obj.parentNode.parentNode;
 var sha = win.nextSibling;
 var tit = obj.parentNode;
 var msg = tit.nextSibling;
 var *** = msg.style.display=="none";
 if(***)
 {
  win.style.height  = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
  sha.style.height  = win.style.height;
  msg.style.display = "block";
  obj.innerHTML = "0";
 }
 else
 {
  win.style.height  = parseInt(tit.style.height) + 2*2;
  sha.style.height  = win.style.height;
  obj.innerHTML = "2";
  msg.style.display = "none";
 }
}
//创建一个对象;
function xWin(id,w,h,l,t,tit,msg)
{
 index = index+2;
 this.id      = id;
 this.width   = w;
 this.height  = h;
 this.left    = l;
 this.top     = t;
 this.zIndex  = index;
 this.title   = tit;
 this.message = msg;
 this.obj     = null;
 this.bulid   = bulid;
 this.bulid();
}
//初始化;
function bulid()
{
 var str = ""
  + "<div id=xMsg" + this.id + " "
  + "style='"
  + "z-index:" + this.zIndex + ";"
  + "width:" + this.width + ";"
  + "height:" + this.height + ";"
  + "left:" + this.left + ";"
  + "top:" + this.top + ";"
  + "background-color:" + normal + ";"
  + "color:" + normal + ";"
  + "font-size:8pt;"
  + "font-family:Tahoma;"
  + "position:absolute;"
  + "cursor:default;"
  + "border:2px solid " + normal + ";"
  + "' "
  + "onmousedown='getFocus(this)'>"
   + "<div "
   + "style='"
   + "background-color:" + normal + ";"
   + "width:" + (this.width-2*2) + ";"
   + "height:20;"
   + "color:white;"
   + "' "
   + "onmousedown='startDrag(this)' "
   + "onmouseup='stopDrag(this)' "
   + "onmousemove='drag(this)' "
   + "ondblclick='min(this.childNodes[1])'"
   + ">"
    + "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;'>" + this.title + "</span>"
    + "<span style='width:12; border-width:0px;color:white;font-family:webdings; ' onclick='min(this)'>0</span>"
    + "<span style='width:12; border-width:0px; color:white;font-family:webdings; ' onclick='ShowHide(\""+this.id+"\",null)'>r</span>"
   + "</div>"
    + "<div style='"
    + "width:100%;"
    + "height:" + (this.height-20-4) + ";"
    + "background-color:white;"
    + "line-height:14px;"
    + "word-break:break-all;"
    + "padding:3px;"
    + "'>" + this.message + "</div>"
  + "</div>"
  + "<div id=xMsg" + this.id + "bg style='"
  + "width:" + this.width + ";"
  + "height:" + this.height + ";"
  + "top:" + this.top + ";"
  + "left:" + this.left + ";"
  + "z-index:" + (this.zIndex-1) + ";"
  + "position:absolute;"
  + "background-color:black;"
  + "filter:alpha(opacity=40);"
  + "'></div>";
 document.body.insertAdjacentHTML("beforeEnd",str);
}
//显示隐藏窗口
function ShowHide(id,dis){
 var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis
 document.getElementById("xMsg"+id).style.display = bdisplay;
 document.getElementById("xMsg"+id+"bg").style.display = bdisplay;
}
//modify by haiwa @ 2005-7-14
//
//-->
</script>

<script  type="text/javascript">
<!--
function initialize()
{
 var a = new xWin("1",160,200,200,200,"窗口1","这效果是不是很酷呢?");
 var b = new xWin("2",240,200,100,100,"窗口2","呵呵,鼠标上来点一下看看啊");
 var c = new xWin("3",200,160,250,50,"窗口3","每一个都可以随意拖动哦~");
 ShowHide("1","none");//隐藏窗口1
}
window.onload = initialize;
//-->
</script>
</head>
<body oncontextmenu="return false" onselectstart="return false">
<a onclick="ShowHide('1',null);return false;" href="#">窗口1</a>
<a onclick="ShowHide('2',null);return false;" href="#">窗口2</a>
<a onclick="ShowHide('3',null);return false;" href="#/">窗口3</a>
</body>
</html>

预览效果

2006-09-14

我的学习日志,从今天开始,每日一宝,请各位监督。下面来第一宝,从jscode搞来的代码和图片链接:-)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>用CSS实现的一个字符显示效果</title>
<style>
body{ font-size:12px; line-height:22px;}
a{text-decoration:none;color:#ff0;font-weight:bold;text-align:center;line-height:100px;font-size:18px;}
#info span{position:absolute;width:523px;height:275px;top:115px; left:10px;background: url(http://www.jscode.cn/Uploadfile/200682485616973.GIF); visibility: hidden;}
a:link,a:visited{cursor: default;}
a:active,a:hover{cursor:auto;}
#hi{visibility: hidden; height:1px; overflow:hidden;}
#w01 a:hover span,#w02 a:active span{background-position: 0px 0px; visibility: visible;}
#w02 a:hover span,#w03 a:active span{background-position: 0px -275px; visibility: visible;}
#w03 a:hover span,#w04 a:active span{background-position: 0px -550px;visibility: visible; }
#w04 a:hover span,#w05 a:active span{background-position: 0px -825px; visibility: visible;}
#w05 a:hover span,#w06 a:active span{background-position: 0px -1100px; visibility: visible;}
#w06 a:hover span,#w07 a:active span{background-position: 0px -1375px; visibility: visible;}
#w07 a:hover span,#w08 a:active span{background-position: 0px -1650px; visibility: visible;}
#w08 a:hover span,#w09 a:active span{background-position: 0px -1925px; visibility: visible;}
#w09 a:hover span,#w10 a:active span{background-position: 0px -2200px; visibility: visible;}
#w10 a:hover span,#w11 a:active span{background-position: 0px -2475px; visibility: visible;}
#w11 a:hover span,#w12 a:active span{background-position: 0px -2750px; visibility: visible;}
#w12 a:hover span,#w13 a:active span{background-position: 0px -3025px;visibility: visible; }

#info a{width:44px; height:100px;display:block; background:#0cf; float:left;}
</style>
</head>
<body>
<div id="info">
  <div id="w01"><a href="http://www.jscode.cn" target="_blank">鼠<span></span></a></div>
  <div id="w02"><a href="http://www.jscode.cn" target="_blank">标<span></span></a></div>
  <div id="w03"><a href="http://www.jscode.cn" target="_blank">上<span></span></a></div>
  <div id="w04"><a href="http://www.jscode.cn" target="_blank">来<span></span></a></div>
  <div id="w05"><a href="http://www.jscode.cn" target="_blank">从<span></span></a></div>
  <div id="w06"><a href="http://www.jscode.cn" target="_blank">左<span></span></a></div>
  <div id="w07"><a href="http://www.jscode.cn" target="_blank">到<span></span></a></div>
  <div id="w08"><a href="http://www.jscode.cn" target="_blank">右<span></span></a></div>
  <div id="w09"><a href="http://www.jscode.cn" target="_blank">来<span></span></a></div>
  <div id="w10"><a href="http://www.jscode.cn" target="_blank">回<span></span></a></div>
  <div id="w11"><a href="http://www.jscode.cn" target="_blank">划<span></span></a></div>
  <div id="w12"><a href="http://www.jscode.cn" target="_blank">吧<span></span></a></div>
</div>
<div id="hi"><img src="http://www.jscode.cn/Uploadfile/200682485616973.GIF" alt="" /></div>
</body>
</html>

预览效果

共1页 1