<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xhchc

    危波帆墻,笑談只在桃花上;與誰共尚,風吹萬里浪; 相依相偎,不做黃泉想;莫惆悵,碧波潮生,一蕭自狂放……

     

    Ajax無刷新實現圖片切換特效


    1.頁面cs代碼
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using AjaxPro;

    public partial class _Default : System.Web.UI.Page 
    {
        
    protected string displayCategoryID;
        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            Utility.RegisterTypeForAjax(
    typeof(AjaxMethod));
            displayCategoryID 
    = "17";
        }

    }
    2.html代碼
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        
    <title>Ajax無刷新實現圖片切換特效</title>
        
    <link type="text/css" href="css/tree.css" rel="stylesheet">
            
    <link type="text/css" href="css/global.css" rel="stylesheet">
            
    <script type=text/javascript src=javascript/tree.js></script>
    </head>
    <body onload="PreloadImage('<%=displayCategoryID %>');">
        
    <form id="form1" runat="server">  
                
    <div id="photoarea" style="width: 514px; height: 496px; left: 0px; top: 0px;">
                    
                    
    <div id="photo" style="left: 5px; top: 9px; height: 432px;">
                        
    <img id="slideShow" src="images/space.gif" style="filter:revealTrans(duration=2,transition=23)">
                        
                    
    </div>                
                    
    <div id="op" align="left" style="left: 12px; top: 457px">
                        
    <span id="progress" style="FONT-SIZE: 20px"></span>
                        
    &nbsp;&nbsp;&nbsp;
                        
    <img id="btnPlay" src="images/play_bw.gif">
                        
    <img id="btnPause" src="images/pause_bw.gif">
                        
    <img id="btnPrev" src="images/prev_bw.gif">
                        
    <img id="btnNext" src="images/next_bw.gif">
                     
    </div>
                
    </div>
                
                
    <SCRIPT type="text/javascript">
                
                
    // 定時器
                var timeDelay;
                
                
    // 圖片自動瀏覽時的時間間隔
                var timeInterval = 4000;
                
                
    // Array對象,存儲圖片文件的路徑
                var image;
                
                
    // 當前顯示的圖片序號
                var num;
                
                
    // 當前瀏覽狀態,該狀態用于控制4個按鈕的狀態
                var nStatus;
                
                
    // 圖片顯示區域
                var slideShow = el("slideShow");
                
                
    // 圖片信息數據表
                var dt;
                
                
    // 預加載圖片信息
                function PreloadImage(iCategoryID)
                
    {
                    
    // 采用同步調用的方式獲取圖片的信息                
                    var ds = AjaxMethod.GetPhotoList(iCategoryID).value;
                    
                    
    // 如果返回了結果
                    if (ds)
                    
    {
                        
    // 判斷數據表是否不為空
                        if (ds.Tables[0].Rows.length > 0)
                        
    {
                            
    // 返回的圖片信息數據表
                            dt = ds.Tables[0];
                            
                            
    // 用image對象存儲圖片的文件路徑
                            image = new Array();
                            
                            
    // 圖片在Photos目錄下
                            for (var i = 0; i < dt.Rows.length; i++)
                            
    {
                                image.push(
    "Photos/" + dt.Rows[i].photo_path);
                            }

                                        
                            
    // imagePreload對象用于實現圖片的預緩存
                            var imagePreload = new Array();
                            
    for (var i = 0;i < image.length;i++)
                            
    {
                                
    // 通過新建Image對象,并將其src屬性指向圖片的URL
                                // 顯現圖片的預緩存
                                imagePreload[i] = new Image();
                                imagePreload[i].src 
    = image[i];
                            }


                            
    // 初始化一些變量
                            num = -1;
                            nStatus 
    = 0x09;
                            
                            
    // 加載第一張圖片
                            next_image();                
                        }

                        
    else // 分類下沒有圖片
                        {
                            alert(
    "該目錄下沒有圖片!");
                        }

                    }

                    
                }


                
    // 實現圖片切換時的效果
                function image_effects()
                
    {
                    
    // Transition的值為0~23之間的隨機數,代表24種切換效果
                    // 具體值與效果之間的對應見MSDN
                    slideShow.filters.revealTrans.Transition = Math.random() * 23;
                    
                    
    // 應用并播放切換效果
                    slideShow.filters.revealTrans.apply();
                    slideShow.filters.revealTrans.play();
                }


                
    // 切換到上一張圖片
                function previous_image()
                
    {
                    
    // 圖片序號向前移動,如果已經是第一張,則切換到最后一張
                    num += image.length - 1;
                    num 
    %= image.length;
                    
                    
    // 圖片切換的效果
                    image_effects();
                    
                    
    // 將<img>對象的src屬性設置為當前num對應的路徑
                    // 切換圖片的顯示
                    slideShow.src = image[num];
                    
                    
    // 獲取圖片的標題、說明信息
                    getPhotoInfo();
                    
                    
    // 設置按鈕狀態
                    setBtnStatus();
                }


                
    // 切換到下一張圖片
                function next_image()
                
    {
                    
    // 當前圖片的序號向后移動,如果已經是最后一張,
                    // 則切換到第一張圖片
                    num++;
                    num 
    %= image.length;
                    
                    
    // 圖片的切換效果
                    image_effects();
                    
                    
    // 將<img>對象的src屬性設置為當前num對應的路徑
                    // 切換圖片的顯示
                    slideShow.src = image[num];
                    
                    
    // 獲取圖片的標題、說明信息
                    getPhotoInfo();
                    
                    
    // 設置按鈕狀態
                    setBtnStatus();
                }


                
    // 自動瀏覽圖片
                function slideshow_automatic()
                
    {
                    
    // 當前圖片的序號向后移動,如果已經是最后一張,
                    // 則切換到第一張圖片
                    num++;
                    num 
    %= image.length;
                    
                    
    // 圖片的切換效果
                    image_effects();
                    
                    
    // <img>對象的src屬性設置為當前num指定的URL
                    // 切換圖片的顯示
                    slideShow.src = image[num];
                    
                    
    // 獲取圖片的標題、說明信息
                    getPhotoInfo();
                    
                    
    // 設置按鈕的狀態,使播放按鈕失效,暫停按鈕有效
                    nStatus &= 0x0E;
                    nStatus 
    |= 0x02;
                    setBtnStatus();
                    
                    
    // slideshow_automatic函數每隔一段時間自動執行
                    timeDelay = setTimeout("slideshow_automatic()", timeInterval);
                }

                
                
    // 停止自動播放
                function pauseSlideShow()
                
    {
                    
    // 清除定時器,不再執行slideshow_automatic函數
                    clearTimeout(timeDelay);

                    
    // 設置按鈕的狀態,使播放按鈕有效,暫停按鈕失效
                    nStatus &= 0x0d;
                    nStatus 
    |= 0x01;
                    setBtnStatus();                
                }

                
                
    // 設置按鈕的狀態:
                // 判斷的依據是當前是否處于自動播放的狀態
                // 以及當前顯示的圖片是否第一張或最后一張圖片
                function setBtnStatus(bDir)
                
    {
                    
    // 如果是第一張圖片
                    if (num == 0)
                    
    {
                        
    // 向前切換圖片的按鈕失效
                        nStatus &= 0x0b;
                    }

                    
                    
    // 如果是最后一張圖片
                    if (num == (image.length - 1))
                    
    {
                        
    // 向后切換圖片的按鈕失效
                        nStatus &= 0x07;
                    }

                    
                    
    // 如果既不是最后一張,也不是第一張圖片
                    if (num != 0 && num !=(image.length - 1))
                    
    {
                        
    // 向前、向后切換圖片的按鈕均有效
                        nStatus |= 0x0c;
                    }

                
                    
    // 根據nStatus每一位的值確定4個按鈕的背景圖
                    el("btnPlay").src = ((nStatus & 0x01== 0x01?
                        
    "images/play.gif" : "images/play_bw.gif";
                    el(
    "btnPause").src = ((nStatus & 0x02== 0x02?
                        
    "images/pause.gif" : "images/pause_bw.gif";
                    el(
    "btnPrev").src = ((nStatus & 0x04== 0x04?
                        
    "images/prev.gif" : "images/prev_bw.gif";
                    el(
    "btnNext").src = ((nStatus & 0x08== 0x08?
                        
    "images/next.gif" : "images/next_bw.gif";

                    
    // 根據nStatus每一位的值確定鼠標移動到4個按鈕上方時的形狀
                    el("btnPlay").style.cursor = ((nStatus & 0x01== 0x01?
                        
    "pointer" : "default";
                    el(
    "btnPause").style.cursor = ((nStatus & 0x02== 0x02?
                        
    "pointer" : "default";
                    el(
    "btnPrev").style.cursor = ((nStatus & 0x04== 0x04?
                        
    "pointer" : "default";
                    el(
    "btnNext").style.cursor = ((nStatus & 0x08== 0x08?
                        
    "pointer" : "default";

                    
    // 根據nStatus的每一位確定4個按鈕是否具有onclick響應
                    el("btnPlay").onclick = ((nStatus & 0x01== 0x01?
                        
    function() {slideshow_automatic();} : function() {return false;};
                    el(
    "btnPause").onclick = ((nStatus & 0x02== 0x02?
                        
    function() {pauseSlideShow();} : function() {return false;};
                    el(
    "btnPrev").onclick = ((nStatus & 0x04== 0x04?
                        
    function() {previous_image();} : function() {return false;};
                    el(
    "btnNext").onclick = ((nStatus & 0x08== 0x08?
                        
    function() {next_image();} : function() {return false;};
                    
                    
    // 顯示當前圖片瀏覽的進度
                    el("progress").innerHTML = (num + 1+ " / " + image.length;
                }

                
                
    // 獲取圖片的標題、說明信息
                function getPhotoInfo()
                
    {
                    
    return;
                    
    // 圖片ID號
                    var id = dt.Rows[num].id;
                    
                    
    // 如果存在
                    if (id)
                    
    {
                        
    // 異步調用Ajax方法GetPhotoInfo
                        AjaxMethod.GetPhotoInfo(id, GetPhotoInfo_callback);
                    }

                }

                
                
    // 回調函數,根據響應的內容顯示標題和說明信息
                function GetPhotoInfo_callback(response)
                
    {
                    
    // 獲取圖片的信息
                    var dt_photo = response.value.Tables[0];
                    
                    
    // 如果圖片存在
                    if (dt_photo.Rows.length > 0)
                    
    {
                        
    // 顯示圖片的標題和說明
                        el("title").innerHTML = dt_photo.Rows[0].photo_title;
                        el(
    "description").innerHTML = dt_photo.Rows[0].photo_description;
                    }

                }
                
                
    </SCRIPT>
        
    </form>
    </body>
    </html>
    3.AjaxMethod類
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using AjaxPro;

    /// <summary>
    /// Summary description for AjaxMethod
    /// </summary>

    public class AjaxMethod
    {
        
    public AjaxMethod()
        
    {
            
    //
            
    // TODO: Add constructor logic here
            
    //
        }

        
    public static string ConnectionString = ConfigurationSettings.AppSettings["ConnectionString"].ToString();

        
    GetDataSet
        
        
    /// <summary>
        
    /// 獲取某個分類下圖片的id和photo_path信息
        
    /// </summary>
        
    /// <param name="iCategoryID">分類ID號</param>
        
    /// <returns>圖片信息(id, photo_path)的信息</returns>

        [AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
        
    public static DataSet GetPhotoList(int iCategoryID)
        
    {
            
    string sql = string.Format("SELECT id, photo_path FROM Photo WHERE photo_category_id = {0}", iCategoryID);
            
    return GetDataSet(sql);
        }


        
    /// <summary>
        
    /// 獲取圖片信息(標題、說明)
        
    /// </summary>
        
    /// <param name="id">圖片id</param>
        
    /// <returns>圖片信息</returns>

        [AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
        
    public static DataSet GetPhotoInfo(int id)
        
    {
            
    string sql = string.Format("SELECT photo_title, photo_description FROM Photo WHERE id = {0}", id);

            
    return GetDataSet(sql);
        }

        
    }
    4.Web.config
    <?xml version="1.0"?>
    <configuration>
      
    <appSettings>
        
    <add key="ConnectionString" value="Data Source=localhost;user id=sa;password=sa;initial catalog=DB"/>
      
    </appSettings>
        
    <connectionStrings/>
        
    <system.web>
          
    <httpHandlers>
            
    <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
          
    </httpHandlers>       
            
    <compilation debug="false" />        
            
    <authentication mode="Windows" />        
        
    </system.web>
    </configuration>
    5.sql腳本
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Photo]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
    drop table [dbo].[Photo]
    GO

    CREATE TABLE [dbo].[Photo] (
        
    [id] [int] IDENTITY (11NOT NULL ,
        
    [photo_title] [varchar] (128) COLLATE Chinese_PRC_CI_AS NULL ,
        
    [photo_description] [text] COLLATE Chinese_PRC_CI_AS NULL ,
        
    [photo_category_id] [int] NULL ,
        
    [photo_path] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL 
    ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
    6.原代碼/Files/singlepine/AjaxChangeImage.rar

    posted on 2009-02-05 10:57 chu 閱讀(324) 評論(1)  編輯  收藏

    評論

    # re: Ajax無刷新實現圖片切換特效 2009-02-05 13:15 jeasonzhao

    其實單純只用JS也可以做到,我沒有仔細看樓主到C#代碼,個人認為是沒有必要到,當然封裝控件另當別論。(*^__^*) 嘻嘻……  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案

    我的鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲中文字幕无码mv| 亚洲综合网站色欲色欲| 波多野结衣在线免费观看| 久久亚洲免费视频| APP在线免费观看视频| 三年片在线观看免费| 日本一道本不卡免费| 污视频在线免费观看| 99免费在线观看视频| 亚洲一区二区三区免费在线观看| 99爱免费观看视频在线| 51精品视频免费国产专区| 曰批视频免费30分钟成人| 最近中文字幕无免费视频| 国产精品美女自在线观看免费| 国产gav成人免费播放视频| 亚洲片国产一区一级在线观看 | 一级做a爰片久久毛片免费陪| 女bbbbxxxx另类亚洲| 大片免费观看92在线视频线视频| 国产特黄特色的大片观看免费视频| 免费久久人人爽人人爽av| 99精品一区二区免费视频| 男女做羞羞的事视频免费观看无遮挡| 久久电影网午夜鲁丝片免费| 亚洲AV日韩AV天堂久久| 亚洲国产成人精品无码区在线秒播| 亚洲一区精彩视频| 麻豆69堂免费视频| 手机看片国产免费永久| 狼群影院在线观看免费观看直播| 最新中文字幕免费视频| 亚洲成aⅴ人片久青草影院| 亚洲高清专区日韩精品| 亚洲国产精品人久久电影| 久久精品国产亚洲av品善| 男女一边桶一边摸一边脱视频免费| 95免费观看体验区视频| 四虎成人免费网站在线| 亚洲中文字幕无码一区| 亚洲制服丝袜在线播放|