
jQuery Gallery Plugin在Asp.Net中使用
推荐一个简单易用的Gallery插件:jQuery Gallery Plugin
下面是在Asp.Net开发中应用
示例截图:

-------------------------------------------------------------------------------风骚分隔线-----------------------------------------------------------------------------------------------
| 第一步:认识一下这个插属性及事件 | 
|---|
jQuery Gallery Plugin介绍网站:
http://www.mudaimemo.com/p/gallery/
图片切换的效果可以结合 jQuery Easing Plugin:
http://gsgd.co.uk/sandbox/jquery/easing/
这里主要介绍一个jQuery Gallery Plugin的参数和事件
| 名称 | 介绍 | 类型 | 默认值 | 
|---|---|---|---|
| 属性 | |||
| barClass | 缩放列表的样式名 | string | 'galleryBar' | 
| barPosition | 缩放列表的位置(可填:‘top’ 或者 ‘buttom’) | string | null | 
| contentClass | 大图片展示区的样式名 | string | 'galeryContent' | 
| descClass | 描述展示区的样式名 | string | 'galleryDesc' | 
| easing | 可以用jQuery Easing Plugin做一些图片展示的效果,详情请看:http://gsgd.co.uk/sandbox/jquery/easing/ | string | 'linear' | 
| height | 大图高(根据图片大小自行设定) | string/integer | null | 
| width | 大图宽(根据图片大小自行设定) | string/integer | null | 
| thumbHeight | 缩放图高(单位:px) | integer | 55 | 
| thumbWidth | 缩放图宽(单位:px) | integer | 55 | 
| interval | 定时切换图片(单位:ms) | integer | 4500 | 
| infoClass | 文字信息部分样式名 | string | 'galleryInfo' | 
| prefix | 前缀 | string | 'gallery_' | 
| ratio | 缩放列表和显示文字信息层占整个图片展示区的多少 | float | 0.35 | 
| screenClass | 缩放列表和显示文字信息层样式名 | string | 'galleryScreen' | 
| showOverlay | 是否显示显示文字信息层 | boolean | true | 
| slideshow | 是否自动切换图片及下部的缩放图列表 | boolean | true | 
| titleClass | 标题展示区样式名 | string | 'gelleryTitle' | 
| toggleBar | 缩放列表是否移上显示,移开隐藏 | boolean | true | 
| 事件 | |||
| onChange | 图片改变时触发 function(index, element) | function | |
| onClick | 大图点击时触发 function(event, element) | function | |
| onSelect | 缩放图点击时触发 function(event) | function | 
| 第二步:编写示例代码 | 
|---|
HTML代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Porschev-jQuery Gallery Plugin</title>
    <script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery.gallery.0.3.js" type="text/javascript"></script>
    <link href="Styles/jquery.gallery.css" rel="stylesheet" type="text/css" />
    <script src="Scripts/jquery.easing.1.3.js" type="text/javascript"></script>        
</head>
<body>
    <form id="form1" runat="server">
    <div id="id_of_gallery" class="gallery">
        <ul class="galleryBar">
           <%=htmlStr%>
        </ul>               
    </div>
    
    <!--下面标签ID对应A标签的rel属性,用来显示描述-->
    <div id="id_desc" style="display:none;">
        <p>我是第一张图的描述<a href="http://www.dtan.so" target="_blank">dtan.so</a></p>
    </div>
    
     <script type="text/javascript">
        $('#id_of_gallery').gallery({
          interval: 5000,
          height: '400px',
          width: '500px',      
        });              
    </script>
    </form>
</body>
</html>using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
using System.Collections.Generic;
public partial class _Default : System.Web.UI.Page 
{
    public string htmlStr = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindData();
        }
    }
    public void BindData()
    {
        #region##这里模拟从数据库里取出图片集合
        ImageDataModel img1 = new ImageDataModel("第一张图标题", "Images/1.jpg", "Images/t1.jpg", "第一张大图描述");
        ImageDataModel img2 = new ImageDataModel("第二张图标题", "Images/2.jpg", "Images/t2.jpg", "第二张大图描述");
        ImageDataModel img3 = new ImageDataModel("第三张图标题", "Images/3.jpg", "Images/t3.jpg", "第三张大图描述");
        ImageDataModel img4 = new ImageDataModel("第四张图标题", "Images/4.jpg", "Images/t4.jpg", "第四张大图描述");
        List<ImageDataModel> list = new List<ImageDataModel>();
        list.Add(img1);
        list.Add(img2);
        list.Add(img3);
        list.Add(img4);
        #endregion
        StringBuilder sb = new StringBuilder();
        foreach (ImageDataModel model in list)
        {
            sb.Append("<li><a href=\"");
            sb.Append(model.BigUrl);
            sb.Append("\"  title=\"");
            sb.Append(model.Description);
            sb.Append("\"><img src=\"");
            sb.Append(model.ThumbUrl);
            sb.Append("\" title=\"");
            sb.Append(model.Title);
            sb.Append("\" /></a></li>");
        }
        htmlStr = sb.ToString();
    }
    /// <summary>
    /// 模拟一个图片实体类
    /// </summary>
    public class ImageDataModel
    {
        public ImageDataModel(string title, string bigUrl, string thumbUrl, string description)
        {
            Title = title;
            BigUrl = bigUrl;
            ThumbUrl = thumbUrl;
            Description = description;
        }
        /// <summary>
        /// 标题
        /// </summary>
        public string Title { get; set; }
        /// <summary>
        /// 大图路径
        /// </summary>
        public string BigUrl { get; set; }
        /// <summary>
        /// 小图路径
        /// </summary>
        public string ThumbUrl { get; set; }
        /// <summary>
        /// 描述
        /// </summary>
        public string Description { get; set; }
    }
}注意:1.HTML代码中Id为id_desc的层,通过这个ID,对应输出代码中的A标签的rel属性,可以自定描述,本来A标签Titlen属性就可以做为描述,但是当描述中想加入一些自定义的东西,就要用这种方法;
比如示例中:描述中要加入一个A标签跳转的http://www.dtan.so,那就可以在输出代码中的A标签中加入rel属性,值设置为:id_desc;详情大家可以去试一下;
2.示例采入后台拼接HTML代码输出到页面的方式,也可用Jquery中$.ajax去请求一般处理程序返回结果集,返回结果集;(数据少,拼接html没有问题,如果是大量的图片展示,建议返回JSON结果集)
3.示例只是模拟了一下数据得到数据,没有真正的去连接数据库,不过也无妨,只需要把我#region#标签模拟的部分改为读取数据库业务逻辑方法即可;
4.些插件中A标签中href是大图路径、Title是描述,rel用于对应自定义描述的ID;image标签src中是小图,Title是标题;
5.gallery样式很易改,各部分都有对应样式,可以去样式表按各自需求改对应的样式,样式名和各部分的对应关系可以对照上面的属性表格;
| 第三步:源码下载 | 
|---|
源码下载地址:jQueryGalleryPlugin.rar
Dtan网站导航 http://www.dtan.so