代码:
<?
xml version="1.0" encoding="GB2312"
?>
< canvas fontsize ="12" >
< script >
// 当前选项卡上被选的项目
var selectitem = 0;
// 每条间的间距(没时间算居中, 手工找齐吧)
var space = 82;
</ script >
< dataset name ="ds_dist" src ="temp.xml" />
<!-- 内部选择框 -->
< view id ="selectrect" width ="70" height ="23" >
< handler name ="oninit" >
this.setSource("rect.gif");
</ handler >
</ view >
<!-- 外部菜单 -->
< view >
< view width ="750" x ="15" y ="2" >
< simplelayout axis ="x" spacing ="50" />
< view id ="v_menu" width ="30" height ="30" datapath ="ds_dist:/Root/City/dist" >
< wrappinglayout axis ="x" spacing ="50" />
<!-- 初始化 -->
< handler name ="oninit" >
ds_dist.doRequest();
</ handler >
< handler name ="ondata" >
var dp = new LzDatapointer();
dp.setPointer(this.datapath.p);
var distname = dp.xpathQuery("text()");
this.subviews[0].setText(distname);
</ handler >
< text name ="dist" align ="center" fontstyle ="bold" fgcolor ="blue" ></ text >
</ view >
</ view >
<!-- 鼠标事件代理 -->
< attribute name ="moustracker_del" value ="$once{ new LzDelegate( this, 'trackmouse' )}" />
< handler name ="onmouseover" >
// 注册实时监控代理
moustracker_del.register(LzIdle,'onidle');
</ handler >
< handler name ="onmouseout" >
// 取消注册
moustracker_del.unregisterAll();
</ handler >
< handler name ="onclick" >
// 跳转页面
LzBrowser.loadURL("http://test.aspx?id="+selectitem,"_blank");
</ handler >
< method name ="trackmouse" >
<![CDATA[
// 实现鼠标监控
var mou_x = this.getMouse('x')
// var mou_y = this.getMouse('y');
// 记录的个数
var count = ds_dist.childNodes[0].childNodes[0].childNodes.length;
// 判断区间并执行动画
for(var i=0;i<count;i++) {
if(mou_x > i * space && mou_x < (i+1) * space) {
selectrect.animate("x",space* i,1000,false,{motion:'easeboth'});
selectitem = i;
}
}
]]>
</ method >
</ view >
</ canvas >
< canvas fontsize ="12" >
< script >
// 当前选项卡上被选的项目
var selectitem = 0;
// 每条间的间距(没时间算居中, 手工找齐吧)
var space = 82;
</ script >
< dataset name ="ds_dist" src ="temp.xml" />
<!-- 内部选择框 -->
< view id ="selectrect" width ="70" height ="23" >
< handler name ="oninit" >
this.setSource("rect.gif");
</ handler >
</ view >
<!-- 外部菜单 -->
< view >
< view width ="750" x ="15" y ="2" >
< simplelayout axis ="x" spacing ="50" />
< view id ="v_menu" width ="30" height ="30" datapath ="ds_dist:/Root/City/dist" >
< wrappinglayout axis ="x" spacing ="50" />
<!-- 初始化 -->
< handler name ="oninit" >
ds_dist.doRequest();
</ handler >
< handler name ="ondata" >
var dp = new LzDatapointer();
dp.setPointer(this.datapath.p);
var distname = dp.xpathQuery("text()");
this.subviews[0].setText(distname);
</ handler >
< text name ="dist" align ="center" fontstyle ="bold" fgcolor ="blue" ></ text >
</ view >
</ view >
<!-- 鼠标事件代理 -->
< attribute name ="moustracker_del" value ="$once{ new LzDelegate( this, 'trackmouse' )}" />
< handler name ="onmouseover" >
// 注册实时监控代理
moustracker_del.register(LzIdle,'onidle');
</ handler >
< handler name ="onmouseout" >
// 取消注册
moustracker_del.unregisterAll();
</ handler >
< handler name ="onclick" >
// 跳转页面
LzBrowser.loadURL("http://test.aspx?id="+selectitem,"_blank");
</ handler >
< method name ="trackmouse" >
<![CDATA[
// 实现鼠标监控
var mou_x = this.getMouse('x')
// var mou_y = this.getMouse('y');
// 记录的个数
var count = ds_dist.childNodes[0].childNodes[0].childNodes.length;
// 判断区间并执行动画
for(var i=0;i<count;i++) {
if(mou_x > i * space && mou_x < (i+1) * space) {
selectrect.animate("x",space* i,1000,false,{motion:'easeboth'});
selectitem = i;
}
}
]]>
</ method >
</ view >
</ canvas >
temp.xml
<
Root
>
< City >
< dist > 西岗区 </ dist >
< dist > 沙河口区 </ dist >
< dist > 中山区 </ dist >
< dist > 干井子区 </ dist >
< dist > 旅顺口区 </ dist >
</ City >
</ Root >
< City >
< dist > 西岗区 </ dist >
< dist > 沙河口区 </ dist >
< dist > 中山区 </ dist >
< dist > 干井子区 </ dist >
< dist > 旅顺口区 </ dist >
</ City >
</ Root >