账号通
    

账号  

密码  

151805

查看

231

回复
主题:[原创]焦点幻灯FLASH图片轮换循环语句终级解决方案 [收藏主题] 本贴被认定为精华 转到:  
cvq 当前离线

704

主题

0

广播

0

粉丝
添加关注
级别:六年级

用户积分:4700 分
登录次数:151 次
注册时间:2008/8/26
最后登录:2016/8/22
cvq 发表于:2008/12/29 18:06:00   | 显示全部帖子 查看该作者主题 楼主 
科汛在线商城系统(NET)

5.5还没到,闲着没事干,做了个官方模板的DIV+CSS模板(原帖请看: http://bbs.kesion.com/dispbbs.asp?boardid=4&Id=63378),包括文章系统和图片系统的各页面,需要的人似乎不是很多,下载系统就没再动手了,在翻看帖子时看很多人对幻灯图片文章有不解之处,于是动手收集了一些信息,现在整理出来与大家探讨.


本帖并不针对某个效果作详细的制作过程说明,只是提供一种思路.在你看完本帖后也许无法制作出一款完整的幻灯,但在以后看见自己喜欢的幻灯时也许对你会有帮助,而不必再上下求索讨教无门.


 


废话少说开始吧,我们知道,目前的焦点图片不外乎这么几种调用形式:FLASH调用参数,html页面调用参数(包括asp,php,net.asp,jsp等等),JS文件调用参数,XML文件调用参数等,不管哪种方式调用,都离不开参数,而参数一般包括这么几项:图片地址,文章网址,文章说明,缩略图地址,文章标题等,我们今天要讲的就是这些参数的调用如何在SQL标签中实现,还是举例说明吧.这里的例子只列出参数调用部分,不包括其它文件调用及JS语句的其它部分.因此你不能照抄这里的例子来制作你的焦点幻灯图片.


 


案例一:


原参数调用部分


<images>
<img>
<url>images/01.jpg</url>
<link>http://www.url.com/</link>
</img>
<img>
<url>images/02.jpg</url>
<link>http://www.url.com/</link>
</img>
<img>
<url>images/03.jpg</url>
<link>http://www.url.com/</link>
</img>
<img>
<url>images/04.jpg</url>
<link>http://www.urll.com/</link>
</img>
<img>
<url>images/05.jpg</url>
<link>http://www.url.com/</link>
</img>
</images>


这是一个典型的FLASH文件调用外部文件参数的例子,结构很简单,任何制作过SQL标签的人都能把它写出来,循环体如下:


 


<images>[loop=5]<img><url>{$Field(PicUrl,Text,0,...,0,)}</url><link>{$Field(ID,GetInfoUrl,1,1)}</link></img>[/loop]</images>


这种参数结构的例子还有很多,如:


<slider>


<item href=http://www.url.com title="文章标题1" imageurl="http://www.url.com/images/01.jpg" />


..........


<item href=http://www.url.com title="文章标题N" imageurl="http://www.url.com/images/0N.jpg" />


</slider>


这些都可以通过上面的简单循环体稍加修改输出同样结构的语句.


这种方法的幻灯还可以在下面网址的页面中找到:


http://www.yxgz.cn/


http://2008.163.com/


http://auto.msn.com.cn/Image_Lib/photos.shtml


http://movie.xunlei.com/topic/gougou_vid/gougou_picnews.html


 


案例二:


原参数调用部分:


sohuFlash2.addVariable(&quot;image&quot;,&quot;图片地址1|图片地址2|图片地址3|图片地址4&quot;);<br>
sohuFlash2.addVariable(&quot;url&quot;,&quot;新闻连接1|新闻连接2|新闻连接3|新闻连接4&quot;);<br>
sohuFlash2.addVariable(&quot;info&quot;, &quot;标题1|标题2|标题3|标题4&quot;);


 


这看上去也很简单且很有规律,循环体似乎可以这样写:


sohuFlash2.addVariable(&quot;image&quot;,&quot;[loop=4]{$Field(PicUrl,Text,0,...,0,)}|[/loop]&quot;);<br>
sohuFlash2.addVariable(&quot;url&quot;,&quot;[loop=4]{$Field(ID,GetInfoUrl,1,1)}|[/loop]&quot;);<br>
sohuFlash2.addVariable(&quot;info&quot;, &quot;[loop=4]{$Field(Title,Text,0,...,0,)}|[/loop]&quot;);


 


遗憾的是,这样的输出结果并不是我们想要的,那怎么办呢?有办法,分开写,即分成三个SQL标签,然后在模板中调用标签,三个标签循环体分别如下:


{SQL_图片地址()}标签循环体:[loop=4]{$Field(PicUrl,Text,0,...,0,)}|[/loop]


{SQL_新闻链接()}标签循环体:[loop=4]{$Field(ID,GetInfoUrl,1,1)}|[/loop]
{SQL_文章标题()}标签循环体:[loop=4]{$Field(Title,Text,0,...,0,)}|[/loop]


 


然后在模板中调用处输入:


sohuFlash2.addVariable(&quot;image&quot;,&quot;{SQL_图片地址()}&quot;);<br>
sohuFlash2.addVariable(&quot;url&quot;,&quot;{SQL_新闻链接()}&quot;);<br>
sohuFlash2.addVariable(&quot;info&quot;, &quot;{SQL_文章标题()}&quot;);


 


这样的例子同样很多,在论坛里很多没有解决的幻灯问题都可以通过这样建多个标签的方法完美解决,例如:


http://news.sina.com.cn/z/2007qglh/index.shtml


http://bbs.kesion.com/dispbbs.asp?BoardID=41&ID=55828


http://women.sohu.com


 


细心的同学可能会说了,不对啊,这样输出会比原来的语句多个"|"出来啊,小问题,让我们一起来解决它,只需要将原来的循环体改成如下形式即可:


{SQL_图片地址()}标签循环体:[loop=3]{$Field(PicUrl,Text,0,...,0,)}|[/loop][loop=1]{$Field(PicUrl,Text,0,...,0,)}[/loop]


{SQL_新闻链接()}标签循环体:[loop=3]{$Field(ID,GetInfoUrl,1,1)}|[/loop][loop=1]{$Field(ID,GetInfoUrl,1,1)}[/loop]
{SQL_文章标题()}标签循环体:[loop=3]{$Field(Title,Text,0,...,0,)}|[/loop][loop=1]{$Field(Title,Text,0,...,0,)}[/loop]


 


案例三:


原参数调用部分:


<script language=javascript type=text/javascript>
var picarry = {};
var lnkarry = {};
var ttlarry = {};

picarry[0] = "http://www.url.com/01.jpg";
lnkarry[0] = "http://www.url.com/1.html";
ttlarry[0] = "标题一";

picarry[1] = "http://www.url.com/02.jpg";
lnkarry[1] = "http://www.url.com/2.html";
ttlarry[1] = "标题二";

picarry[2] = "http://www.url.com/03.jpg";
lnkarry[2] = "http://www.url.com/3.html";
ttlarry[2] = "标题三";

picarry[3] = "http://www.url.com/04.jpg";
lnkarry[3] = "http://www.url.com/4.html";
ttlarry[3] = "标题四";

picarry[4] = "http://www.url.com/05.jpg";
lnkarry[4] = "http://www.url.com/5.html";
ttlarry[4] = "标题五";
</script>


 


这其实很简单,跟案例一一样的道理,只不过多了个序号,那我们就用{$AutoID}这个函数吧,循环体如下:


<script language=javascript type=text/javascript>
var picarry = {};
var lnkarry = {};
var ttlarry = {};
[loop=5]
picarry[{$AutoID}] = "{$Field(PicUrl,Text,0,...,0,)} ";
lnkarry[{$AutoID}] = "{$Field(id,getinfourl,1,1,)} ";
ttlarry[{$AutoID}] = "{$Field(title,Text,0,...,0,)} ";
[/loop]


</script>


 


又有个问题,{$AutoID}无法输出小于1的序数,我们把循环体改成如下便可轻松解决:


<script language=javascript type=text/javascript>
var picarry = {};
var lnkarry = {};
var ttlarry = {};


[loop=1]
picarry[0] = "{$Field(PicUrl,Text,0,...,0,)} ";
lnkarry[0] = "{$Field(id,getinfourl,1,1,)} ";
ttlarry[0] = "{$Field(title,Text,0,...,0,)} ";
[/loop]


[loop=4]
picarry[{$AutoID}] = "{$Field(PicUrl,Text,0,...,0,)} ";
lnkarry[{$AutoID}] = "{$Field(id,getinfourl,1,1,)} ";
ttlarry[{$AutoID}] = "{$Field(title,Text,0,...,0,)} ";
[/loop]</script>


同样的,举一些例子:


http://www.20cz.com/


http://auto.msn.com


http://www.julanhp.cn/ys/ys.html


http://www.lrwoman.com/


 


以下内容只有回复后才可以浏览,请先登录!


OK,用以上方法基本上可以实现大部分的焦点图片代码输出,本帖涉及SQL语句全部可以使用下面这条:


select top 10 ID,title,Picurl from KS_Article where slide=1 and Verific=1 and deltf=0 order by id desc


 


另外,欢迎有任何关于焦点图片幻灯的问题在本帖跟帖回复提出.



 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
cvq 当前离线

704

主题

0

广播

0

粉丝
添加关注
级别:六年级

用户积分:4700 分
登录次数:151 次
注册时间:2008/8/26
最后登录:2016/8/22
cvq 发表于:2009/3/5 21:08:00   | 显示全部帖子 查看该作者主题 沙发 
科汛在线网校系统

回楼上:
建自定义SQL标签:{SQL_获取滚动图片地址()}
SQL语句:select top 6 ID,title,Picurl from KS_Article where Rolls=1 and Verific=1 and deltf=0 order by id desc   注意蓝色部分的查询条件
循环体:
[loop=6]<img src="{$Field(PicUrl,Text,0,...,0,)}" />[/loop]


模板中调用:


<div>
<div onmousedown=goright() style="DISPLAY: inline; BACKGROUND: url(http://i3.sinaimg.cn/edu/deco/2007/0924/career/job_mj_069.gif) no-repeat 11px 0px; FLOAT: left; MARGIN: 25px 0px 0px; OVERFLOW: hidden; WIDTH: 19px; CURSOR: pointer; HEIGHT: 52px"></div>
<div id=demo style="FLOAT: left; OVERFLOW: hidden; WIDTH: 150px; HEIGHT: 100px">
  <table cellPadding=0 align=left border=0 cellspace="0">
    <tr>
      <td id=demo1 vAlign=top>{SQL_获取滚动图片地址()}</td>
      <td id=demo2 vAlign=top>{SQL_获取滚动图片地址()}</td>
    </tr>
  </table>
</div>
<div onmousedown=goleft() style="DISPLAY: inline; BACKGROUND: url(http://i3.sinaimg.cn/edu/deco/2007/0924/career/job_mj_069.gif) no-repeat -8px 0px; FLOAT: left; MARGIN: 25px 0px 0px; OVERFLOW: hidden; WIDTH: 20px; CURSOR: pointer; HEIGHT: 52px"></div></div>
<SCRIPT>
var speed=30
var MoveTimeObj;
var MyMar;
demo2.innerHTML=demo1.innerHTML
demo.scrollLeft=demo.scrollWidth
function Marqueeright()
{
 if(demo.scrollLeft<=0)
  demo.scrollLeft+=demo2.offsetWidth
 else{
  demo.scrollLeft--
  }
}
function Marqueeleft(){
 if(demo2.offsetWidth-demo.scrollLeft<=0)
  demo.scrollLeft-=demo1.offsetWidth
 else{
  demo.scrollLeft++
  }
}
function MoveRight()
{
 MyMar=setInterval(Marqueeright,30)
 demo.onmouseover=function() {clearInterval(MyMar)}
 demo.onmouseout=function() {MyMar=setInterval(Marqueeright,30)}
}
function MoveLeft()
{
 MyMar=setInterval(Marqueeleft,speed)
 demo.onmouseover=function() {clearInterval(MyMar)}
 demo.onmouseout=function() {MyMar=setInterval(Marqueeleft,speed)}
}
function goright()
{
   clearInterval(MyMar);
   MoveRight();
}
function goleft()
{
 clearInterval(MyMar);
 MoveLeft();
}
</SCRIPT>

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.07813秒 powered by KesionCMS 9.0