首先说说动画,学FLASH的人就马上会想到帧,在单位时间内播放多少帧就能实现动画的效果(不过文字滚动在HTML网页中也能用marquee实现效果)
WAP中实现文字滚动的效果就只能利用动画的原理实现,因为WML中没有marquee,但是有CARD 的ontimer事件
ontimer类似<meta http-equiv="refresh"
content="300;url=main.asp">和JAVASCRIPT中的setTimeout方法,用于指定一个事件。当<timer/>
标签指定的时间到期后,浏览器就执行ontimer所指定的这个事件。
ontimer可以是一个URL地址,一个卡片组,一个WML网页,一幅图像或其他符合URL定位的规则的文件。
<timer/>标签指定的时间为正整数,单位大小为1/10秒。
ontimer时间只能包含在card元素或template元素的标签中进行定义,其语法形式如下:
内容(content)
</card>
或:
内容(content)
</template>
ontimer事件只有一个属性,即ontimer。
它用于指定一个超链(href)的URL地址,指定时间timer过期的时候,用户浏览器就会按照超链(href)的URL打开相应的卡片或者文件。
先测试一个例子
效果为:打开页面后显示X1 2秒后跳到第二个名为C2的CARD 显示X2 5秒后跳回第一个卡片
一般HTML页面中文字滚动效果都是自下而上
可以做这样的设计
第一个卡片显示内容
------------------
XXXXXXXXXXXXXXXXXX
------------------
WAP中实现文字滚动的效果就只能利用动画的原理实现,因为WML中没有marquee,但是有CARD 的ontimer事件
ontimer类似<meta http-equiv="refresh"
content="300;url=main.asp">和JAVASCRIPT中的setTimeout方法,用于指定一个事件。当<timer/>
标签指定的时间到期后,浏览器就执行ontimer所指定的这个事件。
ontimer可以是一个URL地址,一个卡片组,一个WML网页,一幅图像或其他符合URL定位的规则的文件。
<timer/>标签指定的时间为正整数,单位大小为1/10秒。
ontimer时间只能包含在card元素或template元素的标签中进行定义,其语法形式如下:
<
card
id
="name"
title
="label"
newcontext
="boolean"
ordered
="true"
onenterforward ="href" onenterbackward ="href" ontimer ="href" >
onenterforward ="href" onenterbackward ="href" ontimer ="href" >
内容(content)
</card>
或:
<
template
onenterforward
="href"
onenterbackward
="href"
ontimer ="href" >
ontimer ="href" >
内容(content)
</template>
ontimer事件只有一个属性,即ontimer。
它用于指定一个超链(href)的URL地址,指定时间timer过期的时候,用户浏览器就会按照超链(href)的URL打开相应的卡片或者文件。
先测试一个例子
<
card
id
="c1"
title
="c1"
ontimer
="#c2"
>
< timer value ="20" />
X1
</ card >
< card id ="c2" title ="c2" ontimer ="#c1" >
X2
< timer value ="50" />
</ card >
< timer value ="20" />
X1
</ card >
< card id ="c2" title ="c2" ontimer ="#c1" >
X2
< timer value ="50" />
</ card >
效果为:打开页面后显示X1 2秒后跳到第二个名为C2的CARD 显示X2 5秒后跳回第一个卡片
一般HTML页面中文字滚动效果都是自下而上
可以做这样的设计
第一个卡片显示内容
------------------
XXXXXXXXXXXXXXXXXX
------------------
代码为:
------------------
<br/><br/><br/>
XXXXXXXXXXXXXXXXXX
------------------
第二个卡片显示内容
------------------
XXXXXXXXXXXXXXXXXX
------------------
代码为:
------------------
<br/><br/>
XXXXXXXXXXXXXXXXXX
------------------
这样配合ONTIMER事件就能实现文字向上移一行的效果
完整代码如下:
<%
@ Language=VBScript
%>
<% Response.ContentType="text/vnd.wap.wml" %>
<? xml version="1.0" encoding="gb2312" ?>
<! DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/ wml_1.1.xml" >
< wml >
<%
dim mystr
mystr="文字文字文字文字文字"
'mystr 可由数据库中读出
const mheight=6
'定义滚动高度
const speed=30
'定义滚动速度,快慢自己决定,不过太快小心关不掉^-^
for i= 1 to mheight
if i=mheight then
ii=1
else
ii=i+1
end if
'判断是不是最后一张卡片
response.write ("<card id='c"&i&"' title='c"&i&"'
ontimer='#c"&ii&"'>"&vbcrlf)
response.write ("<timer value='"&speed&"'/>"&vbcrlf)
brcount=mheight-i
for j1=0 to brcount-1
response.write ( "<br/>"&vbcrlf)
next
response.write ( mystr&vbcrlf)
response.write ("</card>"&vbcrlf)
next
'写出全部卡片
%>
</ wml >
<% Response.ContentType="text/vnd.wap.wml" %>
<? xml version="1.0" encoding="gb2312" ?>
<! DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/ wml_1.1.xml" >
< wml >
<%
dim mystr
mystr="文字文字文字文字文字"
'mystr 可由数据库中读出
const mheight=6
'定义滚动高度
const speed=30
'定义滚动速度,快慢自己决定,不过太快小心关不掉^-^
for i= 1 to mheight
if i=mheight then
ii=1
else
ii=i+1
end if
'判断是不是最后一张卡片
response.write ("<card id='c"&i&"' title='c"&i&"'
ontimer='#c"&ii&"'>"&vbcrlf)
response.write ("<timer value='"&speed&"'/>"&vbcrlf)
brcount=mheight-i
for j1=0 to brcount-1
response.write ( "<br/>"&vbcrlf)
next
response.write ( mystr&vbcrlf)
response.write ("</card>"&vbcrlf)
next
'写出全部卡片
%>
</ wml >