`
charrysong
  • 浏览: 50451 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

纯css模拟液晶式显示数字时间

阅读更多
首先是借鉴了yiminghe大虾的创意和思路(http://www.iteye.com/topic/705529),可惜看到帖子的时候里面的demo已经打不开了,所以决定自己也做一个。

我觉得他画的数字不好看,所以我还是按照经典样式做的。另外变换数字的原理和思路也他的也不一样,我是全都交给css来完成了,我个人认为渲染效率更高些,实现起来也更简单些。

其实很容易就能封装成时钟、倒计时、秒表一类的应用。
特点如下:
1,纯css实现,无图片
2,以em为长度单位,支持缩放
3,以不同类名来控制显示数字,方便控制
转自:http://www.ok22.org/art_detail.aspx?id=180(可直接运行)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<title></title>
<style type="text/css">
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}
#mydemo{margin:100px auto;width:277px;letter-spacing:-1em;}
#mydemo span{margin:0 5px;font-size:0;width:2em;height:14em;display:inline-block;position:relative;overflow:hidden;}

.clock{font-size:16px;width:9em;height:14em;position:relative;display:inline-block;margin:0 2px;-webkit-text-size-adjust:none;}
.clock{*display:inline;}
.clock div{position: absolute;border-style:solid;}
.clock .l,.clock .r,.clock .u,.clock .d{width:0;height:0;overflow:hidden;}

.clock .v{width:0;height:5em;border-width:0 0.5em;border-color:#565656;}
.clock .v .u{border-style:dotted dotted solid dotted;border-width:0 0.5em 0.5em;border-color:transparent transparent #565656 transparent;top:-0.5em;left:-0.5em;}
.clock .v .d{border-style:solid dotted dotted dotted;border-width:0.5em 0.5em 0 0.5em;border-color:#565656 transparent transparent transparent;left:-0.5em;bottom:-0.5em}

.clock .h{width:5.5em;height:0;border-width:0.5em 0;border-color:#565656;}
.clock .h .l{border-style:dotted solid dotted dotted;border-width:0.5em 0.5em 0.5em 0;border-color:transparent #565656 transparent transparent;top:-0.5em;left:-0.5em;}
.clock .h .r{border-style:dotted dotted dotted solid;border-width:0.5em 0 0.5em 0.5em;border-color:transparent transparent transparent #565656;top:-0.5em;right:-0.5em;}

.clock .n1{left:0.5em;top:1.5em;}
.clock .n2{left:0.5em;top:7.5em;}
.clock .n4{left:7.5em;top:7.5em;}
.clock .n5{left:7.5em;top:1.5em;}

.clock .n6{top:0.4em;left:1.8em;}
.clock .n3{top:12.5em;left:1.8em;}
.clock .n7{top:6.5em;left:1.8em;}

.dot {width:2em;height:14em;}
.dot1,.dot2 {width:0;height:0;border:0.5em solid #565656;position:absolute;left:0.5em;font-size:1em}
.dot1{top:4em;}
.dot2{top:9em;}
.putout .dot1,.putout .dot2 {display:none;}

/*原始样式
.c1 .n1,.c1 .n2,.c1 .n3,.c1 .n6,.c1 .n7,
.c2 .n1,.c2 .n4,
.c3 .n1,.c3 .n2,
.c4 .n2,.c4 .n3,.c4 .n6,
.c5 .n2,.c5 .n5,
.c6 .n5,
.c7 .n1,.c7 .n2,.c7 .n3,.c7 .n7,
.c9 .n2,
.c0 .n7{display:none}
*/

.c1 .n1,.c1 .n2,.c1 .n3,.c1 .n6,.c1 .n7,
.c2 .n1,.c2 .n4,
.c3 .n1,.c3 .n2,
.c4 .n2,.c4 .n3,.c4 .n6,
.c5 .n2,.c5 .n5,
.c6 .n5,
.c7 .n1,.c7 .n2,.c7 .n3,.c7 .n7,
.c9 .n2,
.c0 .n7{border-color:#eee;}

.c1 .n3 .l,.c1 .n3 .r,.c1 .n6 .l,.c1 .n6 .r,.c1 .n7 .l,.c1 .n7 .r,
.c4 .n3 .l,.c4 .n3 .r,.c4 .n6 .l,.c4 .n6 .r,
.c7 .n3 .l,.c7 .n3 .r,.c7 .n7 .l,.c7 .n7 .r,
.c0 .n7 .l,.c0 .n7 .r{border-left-color:#eee;border-right-color:#eee;}

.c1 .n1 .u,.c1 .n1 .d,.c1 .n2 .u,.c1 .n2 .d,
.c2 .n1 .u,.c2 .n1 .d,.c2 .n4 .u,.c2 .n4 .d,
.c3 .n1 .u,.c3 .n1 .d,.c3 .n2 .u,.c3 .n2 .d,
.c4 .n2 .u,.c4 .n2 .d,
.c5 .n2 .u,.c5 .n2 .d,.c5 .n5 .u,.c5 .n5 .d,
.c6 .n5 .u,.c6 .n5 .d,
.c7 .n1 .u,.c7 .n1 .d,.c7 .n2 .u,.c7 .n2 .d,
.c9 .n2 .u,.c9 .n2 .d{border-top-color:#eee;border-bottom-color:#eee;}

</style>
<script type="text/javascript" language="javascript" >

	var Clock={
		size:1,
		handle:null,
		hour:0,
		min:0,
		sec:0,
		resize:function(){
			var clocks=document.getElementById("mydemo").children,i=0,k=clocks.length;
			var fontsize=(this.size % 20)+"px",halfsize=(this.size++ % 20)+"px";

			for(;i<k-2;){
				clocks[i++].style.fontSize=fontsize;
			}
			clocks[i++].style.fontSize=halfsize;
			clocks[i++].style.fontSize=halfsize;
		},

		stopClock:function(){
			clearTimeout(Clock.handle);
		},

		startClock:function(){
				var da=new Date();
				var clocks=document.getElementById("mydemo").children;

				var sec=da.getSeconds();
				clocks[7].className="clock c"+(sec % 10);
				clocks[6].className="clock c"+((sec-(sec % 10))/10);


				if( Clock.min!=da.getMinutes() ){
					Clock.min=da.getMinutes();
					clocks[4].className="clock c"+(Clock.min % 10)	;
					clocks[3].className="clock c"+((Clock.min-(Clock.min % 10))/10);
				}

				if( Clock.hour!=da.getHours() ){
					Clock.hour=da.getHours();
					clocks[1].className="clock c"+(Clock.hour % 10)	;
					clocks[0].className="clock c"+((Clock.hour-(Clock.hour % 10))/10);
				}
				Clock.handle=setTimeout(arguments.callee,1000);
		}
	}

</script>
</head>

<body>
<div id="mydemo">
	<div class="clock c0">
		<div class="v n1"><div class="u"></div><div class="d"></div></div>
		<div class="v n2"><div class="u"></div><div class="d"></div></div>
		<div class="h n3"><div class="l"></div><div class="r"></div></div>
		<div class="v n4"><div class="u"></div><div class="d"></div></div>
		<div class="v n5"><div class="u"></div><div class="d"></div></div>
		<div class="h n6"><div class="l"></div><div class="r"></div></div>
		<div class="h n7"><div class="l"></div><div class="r"></div></div>
	</div>
	<div class="clock c0">
		<div class="v n1"><div class="u"></div><div class="d"></div></div>
		<div class="v n2"><div class="u"></div><div class="d"></div></div>
		<div class="h n3"><div class="l"></div><div class="r"></div></div>
		<div class="v n4"><div class="u"></div><div class="d"></div></div>
		<div class="v n5"><div class="u"></div><div class="d"></div></div>
		<div class="h n6"><div class="l"></div><div class="r"></div></div>
		<div class="h n7"><div class="l"></div><div class="r"></div></div>
	</div>
	<span>   
        <div class="dot1"></div>   
        <div class="dot2"></div>   
    </span>
	<div class="clock c0">
		<div class="v n1"><div class="u"></div><div class="d"></div></div>
		<div class="v n2"><div class="u"></div><div class="d"></div></div>
		<div class="h n3"><div class="l"></div><div class="r"></div></div>
		<div class="v n4"><div class="u"></div><div class="d"></div></div>
		<div class="v n5"><div class="u"></div><div class="d"></div></div>
		<div class="h n6"><div class="l"></div><div class="r"></div></div>
		<div class="h n7"><div class="l"></div><div class="r"></div></div>
	</div>
	<div class="clock c0">
		<div class="v n1"><div class="u"></div><div class="d"></div></div>
		<div class="v n2"><div class="u"></div><div class="d"></div></div>
		<div class="h n3"><div class="l"></div><div class="r"></div></div>
		<div class="v n4"><div class="u"></div><div class="d"></div></div>
		<div class="v n5"><div class="u"></div><div class="d"></div></div>
		<div class="h n6"><div class="l"></div><div class="r"></div></div>
		<div class="h n7"><div class="l"></div><div class="r"></div></div>
	</div>
	<span>   
        <div class="dot1"></div>   
        <div class="dot2"></div>   
    </span>
	<div class="clock c0">
		<div class="v n1"><div class="u"></div><div class="d"></div></div>
		<div class="v n2"><div class="u"></div><div class="d"></div></div>
		<div class="h n3"><div class="l"></div><div class="r"></div></div>
		<div class="v n4"><div class="u"></div><div class="d"></div></div>
		<div class="v n5"><div class="u"></div><div class="d"></div></div>
		<div class="h n6"><div class="l"></div><div class="r"></div></div>
		<div class="h n7"><div class="l"></div><div class="r"></div></div>
	</div>
	<div class="clock c0">
		<div class="v n1"><div class="u"></div><div class="d"></div></div>
		<div class="v n2"><div class="u"></div><div class="d"></div></div>
		<div class="h n3"><div class="l"></div><div class="r"></div></div>
		<div class="v n4"><div class="u"></div><div class="d"></div></div>
		<div class="v n5"><div class="u"></div><div class="d"></div></div>
		<div class="h n6"><div class="l"></div><div class="r"></div></div>
		<div class="h n7"><div class="l"></div><div class="r"></div></div>
	</div>
</div>
<script>
Clock.resize();
Clock.resize();
Clock.resize();
Clock.resize();
Clock.startClock();
</script>
</body>
</html>
分享到:
评论

相关推荐

    js css实现LCD数字显示

    "js css实现LCD数字显示"这个主题涉及到如何使用JavaScript(js)和层叠样式表(CSS)技术来模拟LCD液晶显示屏上的数字显示效果。液晶显示器(LCD)数字通常用于各种设备,如时钟、仪表盘或简单的用户界面,它们以...

    CSS制作液晶屏的显示效果.

    根据给定的信息,本文将详细解释如何利用CSS技术来实现模拟液晶显示屏的显示效果,并特别关注数字累加功能的实现。 ### CSS制作液晶屏显示效果的技术背景 在现代Web开发中,利用CSS来创建视觉上令人印象深刻的动态...

    利用字体库打造一个模拟液晶数字格式显示的特效

    本教程将详细介绍如何利用字体库来构建一个模拟液晶数字格式显示的特效,让你的网页设计增添一份科技感。 首先,我们需要理解“液晶数字”(LCD数字)的特征。液晶显示屏通常以特定的样式显示数字,这种样式的特点...

    纯Js实现的精美液晶时钟

    "纯Js实现的精美液晶时钟"项目就是一个利用JavaScript的强大功能,来创建一个模拟液晶显示屏效果的时钟。这个项目完全基于JavaScript,不依赖任何外部库,展现了JS在实现复杂动画和实时更新能力上的潜力。 液晶显示...

    Java模拟LCD液晶屏时钟特效.rar

    Java模拟LCD液晶屏时钟特效是一个有趣的编程项目,它展示了如何使用Java编程语言来创建一个类似于实际LCD(Liquid Crystal Display)液晶屏显示时间的界面。这个项目不仅具有实用价值,还可以帮助开发者提升图形用户...

    HTML5 3D液晶数字时钟特效.zip

    在3D液晶数字时钟中,可能需要使用`translate()`、`rotate()`和`scale()`等变换函数来创建3D效果,通过改变坐标轴来模拟物体的旋转和缩放。 CSS3则在样式层面上发挥了重要作用,特别是对于3D转换和动画的支持。通过...

    jquery实现可发光的LED数字显示效果

    在这个特定的项目中,“jquery实现可发光的LED数字显示效果”是一个利用jQuery创建的动态视觉效果,常见于模拟电子显示屏或数字时钟等应用。这种效果能够吸引用户注意力,并为网页增添科技感。 首先,我们要理解LED...

    js做的液晶时钟效果源码.zip

    这个"js做的液晶时钟效果源码.zip"包含了一个简单的示例,教你如何使用JavaScript实现液晶数字显示的时钟效果。 首先,我们来理解HTML文件的作用。在提供的压缩包中,有一个名为"时钟.html"的文件,它是整个网页的...

    【帆软FR】新增自定义字体(以LED字体为例)_液晶数字字体.zip

    - **引入CSS**:在帆软FR中,你可以创建一个新的CSS文件,例如"液晶数字字体.css",并将这些字体文件引入到CSS中。通常,你会定义@font-face规则,指明字体名称和对应的文件路径。 - **应用字体**:在CSS文件中,...

    JS酷炫红色LED数字时钟代码

    总的来说,JS酷炫红色LED数字时钟代码是一个结合了JavaScript、HTML和CSS技术的创意项目,它展示了如何利用这些技术来创建交互式的动态时钟效果。通过学习和理解这个项目的实现,开发者不仅可以提升在前端开发中的...

    java版巨大的LCD时钟源码

    3. Swing组件:在LCD时钟中,主要的组件可能是JLabel,因为它可以用来显示文本,模拟LCD数字时钟的样式。开发者可能会用多个JLabel来分别显示小时、分钟和秒,或者用单个JLabel并通过更新其文本内容来实现动态显示。...

    液晶显示器

    在电子设计中,数字液晶显示常用于显示数字或简单的字符信息,如时钟、温度计或仪表盘。编程时,我们可能需要编写一个名为 `Numeric-LCD-main` 的核心代码来控制这类显示,处理数据转换、更新显示内容和驱动LCD硬件...

    百为开发板-原理图-stm32_live_sch1

    13. **LCD & Joystick**:开发板可能集成了液晶显示屏和操纵杆,用于显示信息和用户交互。 14. **MicroSDCard**:通过SPI接口与微控制器通信,用于数据存储。 15. **Anti-Tamper** 和 **WAKEUP** 引脚:这些可能...

    计算机专业英语词汇

    主动矩阵技术通常应用于LCD(液晶显示器)屏幕中,它通过使用薄膜晶体管(Thin Film Transistor,TFT)来控制每个像素点的状态,从而提高显示效果。这种技术可以提供更快的响应速度、更高的对比度以及更好的色彩表现...

    JAVA上百实例源码以及开源项目源代码

    Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书 Java 数字签名、数字证书的相关实例。 关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用...

Global site tag (gtag.js) - Google Analytics