跑马灯说白了就是让灯按照一定顺序亮起来,你可以采用最笨的方法,从中间往两边跑,假设0代表低点平,1代表高电平,那么就得出以下几个状态,\x0d\0b11111111\x0d\0b11100111\x0d\0b11011011\x0d\0b10111101\x0d\0b01111110\x0d\看0是不是从中间往两边跑\x0d\当然你也可以用算法实现,你可以将这个八位的数据看做两个4位的,然后将高四位左移,低四位右移\x0d\写个大概程序为:\x0d\unsigned char a ,b,c,,i;\x0d\for(i=0;i>i))&0x0f;//将1右移i位后取反与a相与,得出结果为低四位\x0d\c=a
ORG 0000H ;开机上电主程序入口
AJMP START ;系统一进来就转到主程序
ORG 0030H ;主程序地址
START: MOV A, #0FFH ;主程序开始,A中初始化成全1
CLR C ;c清零
MOV R2, #08H ;R2左转循环计数器
LOOP: RLC A <<C+A+C<<带进位循环左移,A中的内容在8此循环中从0位到7位依次变0
MOV P2, A ;送到P2,使P2从0位到7位依次点亮LED
CALL DELAY ;单片机运行很快,为了能看到灯的变化,必须延迟,把速度降下来
DJNZ R2, LOOP ;R2每次减1后判断是否=0,8次后=0程序才会下行,否则会跳回LOOP
MOV R2,#07H ;R2右转循环计数器
LOOP1: RRC A >>C+A+C>>带进位循环右移,A中的内容在8此循环中从7位到0位依次变0
MOV P2, A ;送到P2,使P2从7位到0位依次点亮LED
CALL DELAY ;和上个循环一样,延时
DJNZ R2, LOOP1 ;R2每次减1后判断是否=0,7次后=0程序才会下行,否则会跳回LOOP1
JMP START ;跳回程序起始位置重复下一个循环
DELAY: MOV R3, #20;延时子程序,这个应该不用解释了吧
D1: MOV R4, #200
D2: MOV R5, #248
DJNZ R5, $
DJNZ R4, D2
RET
END
我觉得这种网页最简单吧,都是美工的活儿,一般情况下是DIV+CSS做出前台布局,然后用Javascript写出一些漂亮的效果,比如飘花什么的,还有些文字跑马灯效果使用Javascript配合<marque>标记来做,(忘记了是不是这样写,好久没做了),很多效果可以去网上搜源代码的,比如换个玫瑰形状的鼠标,在鼠标后面跟随两个带着翅膀的小猪,当然方面最好用gif格式,比较漂亮华丽,当然,最重要的是你的想法~找个成熟点的程序猿GG两天左右差不多就给你做完了~加油哦~!
今天要实现的一个效果是在Android中实现一个跑马灯的效果:
在新建一个Android product之后,在布局文件main中替换掉原来的TextView
代码如下:
<TextView
android:layout_width="60dp"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="这是跑马灯的效果这是跑马灯的效果">
</TextView>
其他部分代码不用改动,在模拟器上应该可以看到滚动的显示"这是跑马灯的效果这是跑马灯的效果"。
其中有几个问题是我自己碰到的,列举如下:
1宽度android:layout_width不可以设置为wrap_content(自适应内容)
2android:text最好是比较长的字符串,最少要长过自己设置的width大小(我这里是60dp)
3颜色最好别设置为@android:color/white,否则你什么都看不到,因为背景颜色也是white
4在xml中,TextView 的属性
android:ellipsize = "end" 省略号在结尾
android:ellipsize = "start" 省略号在开头
android:ellipsize = "middle" 省略号在中间
android:ellipsize = "marquee" 跑马灯
5android:scrollHorizontally="true"相信大家英文水平还不错的话都明白这句的意思是水平滚动
6android:marqueeRepeatLimit="marquee_forever" 看英文同样可以明白,是无限次循环,学习android,英文基础还是必须的。
7最后还有两句代码没有解释:
android:focusable="true" //让TextView获得焦点
android:focusableInTouchMode="true" //针对触摸屏获得当前焦点
事实上这两句代码我也了解不是特别多,在网上查了下这两个属性,目前理解为:
android:focusable="true"相当于当前Activity打开的时候,让当前控件TextView获得焦点,才可以实现滚动功能
android:focusableInTouchMode="true"和上述属性应该是类似的,但限制应该是指的触摸屏上的意思
对于这两个属性,希望有高人指点下。
使用两个jQuery插件可以满足你的要求。第一个,跑马灯插件jqueryliMarquee,第二个看图浮层的插件pirobox。
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=10">
<title>jQuery跑马灯插件</title>
<link rel="stylesheet" type="text/css" href="css/defaultcss">
<link rel="stylesheet" href="css/liMarqueecss">
<style type="text/css">
str_wrap{
padding-left: 3em;
padding-right: 3em;
background: #fefefe;
height: 10em;
line-height: 2em;
font-size: 12em;
}
str4 str_item {
font-size:0;
line-height:0
}
str4 img { opacity:08;width:640px;height:450px;border:0;}
str4 img:hover { opacity:1}
str4str_wrapstr_active {
background:#fff;
}
str2 img { opacity:08;width:640px;height:450px;border:0;}
</style>
<script src="js/jquery183minjs" type="text/javascript"></script>
<link href="css/stylecss" class="piro_style" media="screen" title="white" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/piroboxjs"></script>
<script type="text/javascript">
$(document)ready(function() {
$()piroBox({
my_speed: 400,
bg_alpha: 01,
slideShow : true,
slideSpeed : 4,
close_all : 'piro_close,piro_overlay'
});
});
</script>
<style type="text/css">
body{margin:0 0;}
div{float:left;}
#maindiv{width:1920px;height:1080px;background-color:#ccc;}
a{text-decoration:none;}
img{border:0;}
#zhudiv{width:1920px;height:900px;background-color:#002fa7;}
</style>
</head>
<body>
<div id="maindiv">
<div id="zhudiv">
<div class="str4 str_wrap">
<a class="pirobox_gall" href="img/1jpg"><img src="img/1jpg"></a>
<a class="pirobox_gall" href="img/2jpg"><img src="img/2jpg"></a>
<a class="pirobox_gall" href="img/3jpg"><img src="img/3jpg"></a>
<a class="pirobox_gall" href="img/4jpg"><img src="img/4jpg"></a>
<a class="pirobox_gall" href="img/5jpg"><img src="img/5jpg"></a>
<a class="pirobox_gall" href="img/6jpg"><img src="img/6jpg"></a>
<a class="pirobox_gall" href="img/7jpg"><img src="img/7jpg"></a>
</div>
<div class="str2 str_wrap">
<a class="pirobox_gall" href="img/11jpg"><img src="img/11jpg"></a>
<a class="pirobox_gall" href="img/22jpg"><img src="img/22jpg"></a>
<a class="pirobox_gall" href="img/33jpg"><img src="img/33jpg"></a>
<a class="pirobox_gall" href="img/44jpg"><img src="img/44jpg"></a>
<a class="pirobox_gall" href="img/55jpg"><img src="img/55jpg"></a>
<a class="pirobox_gall" href="img/66jpg"><img src="img/66jpg"></a>
<a class="pirobox_gall" href="img/77jpg"><img src="img/77jpg"></a>
</div>
</div>
</div>
<script src="js/jqueryliMarqueejs"></script>
<script>
$(window)load(function(){
var stringEl = $('str4')liMarquee();
stringEltrigger('mouseenter');
stringEldata({scrollamount:150});
stringEltrigger('mouseleave');
});
$('str2')liMarquee({
direction: 'right'
});
</script>
</body>
</html>
这个完全是我本人自己真实项目当中的代码
http://1xifan00520applinzicom/weixin/indexhtml
其实不用js 用css3就能完成
代码如下
标签:{
background: -webkit-gradient(linear,left top,right top,color-stop(0, #3CAF5A),color-stop(03, #3CAF5A),color-stop(05, white),color-stop(07, #3CAF5A),color-stop(1, #3CAF5A));
background-clip: text; //文字背景区域
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
text-fill-color: transparent;
-webkit-animation: slidetounlock 2s linear infinite; //动画执行的参数 第一是 动画执行的名字 第二是所需时间 第三是执行动画的快慢infinite是均速 第四个参数是循环
animation: slidetounlock 2s linear infinite;
}
为了兼容建议把写全 百分比是指动画执行到多少以后执行里面的动画
@keyframes slidetounlock{
0% {
background-position: -2rem 0;
}
80% {
background-position: 1rem 0;
}
100% {
background-position: 2rem 0;
}
}
@-webkit-keyframes slidetounlock{
0% {
background-position: -2rem 0;
}
80% {
background-position: 1rem 0;
}
100% {
background-position: 2rem 0;
}
}
@-moz-keyframes slidetounlock{
0% {
background-position: -11rem 0;
}
80% {
background-position: 1rem 0;
}
100% {
background-position: 11rem 0;
}
}
@-ms-keyframes slidetounlock{
0% {
background-position: -11rem 0;
}
80% {
background-position: 1rem 0;
}
100% {
background-position: 11rem 0;
}
}
@-o-keyframes slidetounlock{
0% {
background-position: -11rem 0;
}
80% {
background-position: 1rem 0;
}
100% {
background-position: 11rem 0;
}
}
之后你只需要设置文字所在容器的宽度就行,用px可以代替rem;可根据自己的需求来修改
最后效果就是
白色会一直从左到右 有点像早期苹果滑动解锁的那种动画,这个可以根据实际需求来修改
//P1外接8
LED
低电平发光
//
列程序
PROTEUS
仿真
功
#include<reg52h>
//-----------------------------
void
delay_ms(unsigned
int
s)
{
unsigned
int
x;
for(s;
s
>
0;
s--)
{
x
=
98;
while(x--);
}
}
//-----------------------------
void
main()
{
char
i,
j;
while(1)
{
for(j
=
0;
j
<
8;
j++)
{
P1
=
255;
//全灭,
P1外接LED,
低电平发光
delay_ms(500);
//稍等片刻
for(i
=
0;
i
<
8;
i++)
{
P1
<<=
1;
delay_ms(900
-
100
j);
//延
渐短
}
}
}
}
//-----------------------------
欢迎分享,转载请注明来源:表白网
评论列表(0条)