下一站天后

今朝的容颜老于昨晚

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

     图片翻页效果没有用到复杂的js脚本,而是使用了一个技巧,将全部图片都先一次性显示出来(对于图片不多的情况下,海量当然不适用),然后控制一部分图片的显示与隐藏。

     也是为了自己练习拼表格特记录下来。在同一个页面要实现4组图片分页,每行8张。

 

<Script language="javascript">
                    function getCount(type)
                    {
                        var tds 
= document.getElementsByTagName("td");
                        var result 
= 0;
                        
                        
for(var i = 0 ; i < tds.length;i++)
                        {
                            
if(tds[i].id.indexOf("td_"+type) != -1)
                            {
                                result 
++;
                            }
                        }
                        
return result;
                    }
                    function changePage(objtype,type)
                    {
                        var count 
= getCount(objtype);
                        var pageNum 
= parseInt(count/8)+1;
                        var currentIndex 
= document.getElementById("txt"+objtype).value*1;
                        
if(type == "down" && currentIndex==1)
                        {
                            
return;
                        }
                        
else if(type=="up" && currentIndex == pageNum)
                        {
                            
return;
                        }
                        
if(type == "down")
                            currentIndex
--;
                        
else if(type == "up")
                            currentIndex
++;
                        document.getElementById(
"txt"+objtype).value = currentIndex;
                                
                        
for(var i = 0 ; i < count;i++)
                        {
                            document.getElementById(
"td_"+objtype+"_"+i).style.display = "none";
                        }
                        
for(var i = (currentIndex-1* 8;i< currentIndex*8 ; i++)
                        {
                            var obj 
= document.getElementById("td_"+objtype+"_"+i);
                            
                            
if(obj == null)
                            {
                                
break;
                            }
                            obj.style.display 
= "inline";
                        }                                                            
                    }
                
</Script>

以基金这一组为例:

<div style="MARGIN:18px 10px 10px">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
    
<td class="tt_ins">基金&gt;&gt;</td>
</tr>
</table>
<table class="list_zt" border="0" cellpadding="1" width="960px" cellspacing="0">
<tr valign="top">    
    
<td valign="middle" width="30px">
    
<img src="images/down.gif" tyle="cursor:hand" onclick="changePage('fund','down');"/>
    
</td>
    
<td >
    
<input type="hidden" id="txtfund" value="1">    <br>
    
<%=BindDataList("fund")%>            </td>
    
<td valign="middle"  width="30px">
    
<img src="images/up.gif"  tyle="cursor:hand"  onclick="changePage('fund','up');"/>
    
</td>
</tr>
</table>
</div>

后台拼表格代码:

protected string BindDataList(string type)
        {
            System.Text.StringBuilder sb 
= new System.Text.StringBuilder("");
            ArrayList arr 
= dp.GetEbooksByType(Components.Enum.TopicType.Default,15).Items;
            
if(arr.Count > 0)
            {
                
this.lblebtitle.Text = ((EBooks)arr[0]).Title;
                
this.lblebcontent.Text = ((EBooks)arr[0]).Content;
                
this.HyperlinkUrl.NavigateUrl = ((EBooks)arr[0]).Url;
                
this.lblebtitle.NavigateUrl = ((EBooks)arr[0]).Url;
                
this.lblview.Text = ((EBooks)arr[0]).Info1;
                
this.FMImg.Src = ((EBooks)arr[0]).ImgUrl;
                arr.RemoveAt(
0);
                
                ArrayList arr1 
= null;
                
if(type == "fund")
                {
                    arr1 
= dp.GetEbooksByType(Components.Enum.TopicType.Fund,500).Items;//基金
                }
                
else if(type == "insurance")
                {    
                    arr1 
= dp.GetEbooksByType(Components.Enum.TopicType.Insurance,500).Items;//保险
                }
                
else if(type == "bank")
                {
                    arr1 
= dp.GetEbooksByType(Components.Enum.TopicType.Bank,500).Items;//银行
                }
                
else if(type == "finances")
                {
                    arr1 
= dp.GetEbooksByType(Components.Enum.TopicType.Finances,500).Items;//理财讲堂
                }
            
                sb.Append(
"<table cellspacing='0' border='0' width='900px' style='border-collapse:collapse;'>");
                sb.Append(
"<tr>");
                
for(int i = 0 ; i < arr1.Count;i++)
                {
                    EBooks book 
= arr1[i] as EBooks;
                    sb.Append(
"<td id='td_"+type+"_"+i+"");

                    
if(i>7)
                    {
                        sb.Append(
" style='display:none' ");
                    }
                    sb.Append(
">");

                    sb.Append(
"<a href='"+book.Url+"' target='_blank' style='height:110px;width:80px;'><img src='"+book.Url1+"' alt='' border='0' /></a>");
                    sb.Append(
"    <a href='"+book.Url+"' target='_blank'>"+book.Title+"</a>");

                    sb.Append(
"</td>");
                }
                
int n=0;//需要补齐的td数
                n=(Convert.ToInt32(arr1.Count/8)+1)*8-arr1.Count;
        
                
for(int j=0;j<n;j++)
                {
                    
int m=arr1.Count+j;
/*当图片不足显示一行的时候用占位的td补齐 style='display:none'的td是不占位的 但翻页的时候还是对齐了是由于第一行是满的,这样后面行的td会自动与第一行的对齐 所以这里要判断一下*/
                    
if(arr1.Count<=8)
                    {      //这里要占位的                  
                        sb.Append(
"<td id='td_"+type+"_"+m+"' ></td>");
                    }
                    
else
                    {  //这里不要占位的
                        sb.Append(
"<td id='td_"+type+"_"+m+"' style='display:none'></td>");
                    }                    
                }
                sb.Append(
"</tr></table>");                
            }
            
return sb.ToString();
        }

display:none元素不可见并且不占用空间   
visibility:hidden不可见但占用原有的空间

 

posted on 2008-08-21 08:55  孙雅玲  阅读(1109)  评论(0编辑  收藏  举报