ASP.NET控件开发系列之图片切换web控件

刚开始学习控件开发,写了一个web图片切换控件,欢迎大家拍砖.

贴出来控件页面的代码.

ExpandedBlockStart.gif PicList.ascx
<% @ Control Language = " C# "  AutoEventWireup = " true "  CodeFile = " PicList.ascx.cs "  Inherits = " WebParts_PicList "   %>
< style type = " text/css " >
    
/*  Reset style  */
    
*
    {
        margin: 
0 ;
        padding: 
0 ;
        word
- break break - all;
    }
    body
    {
        background: #fff;
        color: #
000000 ;
        font: 12px
/ 1 .6em Helvetica, Arial, sans - serif;
        margin
- left: 0px;
        margin
- top: 0px;
        margin
- right: 0px;
        margin
- bottom: 0px;
    }
    h1, h2, h3, h4, h5, h6
    {
        font
- size: 1em;
    }
    a
    {
        color: #0287CA;
        text
- decoration: none;
    }
    a:hover
    {
        text
- decoration: underline;
    }
    ul, li
    {
        list
- style: none;
    }
    fieldset, img
    {
        border: none;
    }
    legend
    {
        display: none;
    }
    em, strong, cite, th
    {
        font
- style: normal;
        font
- weight: normal;
    }
    input, textarea, select, button
    {
        font: 12px Helvetica, Arial, sans
- serif;
    }
    table
    {
        border
- collapse: collapse;
    }
    html
    {
        overflow: 
- moz - scrollbars - vertical;
    }
    
/* Always show Firefox scrollbar */
    
/*  iFocus style  */
    #ifocus
    {
        width: 650px;
        height: 245px;
        margin: 0px;
        border: 1px solid #DEDEDE;
        background: #F8F8F8;
    }
    #ifocus_pic
    {
        display: inline;
        position: relative;
        
float : left;
        width: 540px;
        height: 225px;
        overflow: hidden;
        margin: 10px 
0   0  10px;
    }
    #ifocus_piclist
    {
        position: absolute;
    }
    #ifocus_piclist li
    {
        width: 550px;
        height: 225px;
        overflow: hidden;
    }
    #ifocus_piclist img
    {
        width: 550px;
        height: 225px;
    }
    #ifocus_btn
    {
        display: inline;
        
float : right;
        width: 91px;
        margin: 9px 9px 
0   0 ;
    }
    #ifocus_btn li
    {
        width: 91px;
        height: 57px;
        cursor: pointer;
        opacity: 
0.5 ;
        
- moz - opacity:  0.5 ;
        filter: alpha(opacity
= 50 );
    }
    #ifocus_btn img
    {
        width: 75px;
        height: 45px;
        margin: 7px 
0   0  11px;
    }
    #ifocus_btn .current
    {
        background: url(img
/ ifocus_btn_bg.gif) no - repeat;
        opacity: 
1 ;
        
- moz - opacity:  1 ;
        filter: alpha(opacity
= 100 );
    }
    #ifocus_opdiv
    {
        position: absolute;
        left: 
0 ;
        bottom: 
0 ;
        width: 545px;
        height: 35px;
        background: #
000 ;
        opacity: 
0.5 ;
        
- moz - opacity:  0.5 ;
        filter: alpha(opacity
= 50 );
    }
    #ifocus_tx
    {
        position: absolute;
        left: 8px;
        bottom: 8px;
        color: #FFF;
    }
    #ifocus_tx .normal
    {
        display: none;
    }
</ style >

< script type = " text/javascript " >
function $(id) { 
return  document.getElementById(id); }
function addLoadEvent(func){
 var oldonload 
=  window.onload;
 
if  ( typeof  window.onload  !=   ' function ' ) {
  window.onload 
=  func;
 } 
else  {
  window.onload 
=  function(){
   oldonload();
   func();
  }
 }
}
function moveElement(elementID,final_x,final_y,interval) {
  
if  ( ! document.getElementById)  return   false ;
  
if  ( ! document.getElementById(elementID))  return   false ;
  var elem 
=  document.getElementById(elementID);
  
if  (elem.movement) {
    clearTimeout(elem.movement);
  }
  
if  ( ! elem.style.left) {
    elem.style.left 
=   " 0px " ;
  }
  
if  ( ! elem.style.top) {
    elem.style.top 
=   " 0px " ;
  }
  var xpos 
=  parseInt(elem.style.left);
  var ypos 
=  parseInt(elem.style.top);
  
if  (xpos  ==  final_x  &&  ypos  ==  final_y) {
  
return   true ;
  }
  
if  (xpos  <  final_x) {
    var dist 
=  Math.ceil((final_x  -  xpos) / 10 );
    xpos 
=  xpos  +  dist;
  }
  
if  (xpos  >  final_x) {
    var dist 
=  Math.ceil((xpos  -  final_x) / 10 );
    xpos 
=  xpos  -  dist;
  }
  
if  (ypos  <  final_y) {
    var dist 
=  Math.ceil((final_y  -  ypos) / 10 );
    ypos 
=  ypos  +  dist;
  }
  
if  (ypos  >  final_y) {
    var dist 
=  Math.ceil((ypos  -  final_y) / 10 );
    ypos 
=  ypos  -  dist;
  }
  elem.style.left 
=  xpos  +   " px " ;
  elem.style.top 
=  ypos  +   " px " ;
  var repeat 
=   " moveElement(' " + elementID + " ', " + final_x + " , " + final_y + " , " + interval + " ) " ;
  elem.movement 
=  setTimeout(repeat,interval);
}
function classNormal(iFocusBtnID,iFocusTxID){
 var iFocusBtns
=  $(iFocusBtnID).getElementsByTagName( ' li ' );
 var iFocusTxs 
=  $(iFocusTxID).getElementsByTagName( ' li ' );
 
for (var i = 0 ; i < iFocusBtns.length; i ++ ) {
  iFocusBtns[i].className
= ' normal ' ;
  iFocusTxs[i].className
= ' normal ' ;
 }
}
function classCurrent(iFocusBtnID,iFocusTxID,n){
 var iFocusBtns
=  $(iFocusBtnID).getElementsByTagName( ' li ' );
 var iFocusTxs 
=  $(iFocusTxID).getElementsByTagName( ' li ' );
 iFocusBtns[n].className
= ' current ' ;
 iFocusTxs[n].className
= ' current ' ;
}
function iFocusChange() {
 
if ( ! $( ' ifocus ' ))  return   false ;
 $(
' ifocus ' ).onmouseover  =  function(){atuokey  =   true };
 $(
' ifocus ' ).onmouseout  =  function(){atuokey  =   false };
 var iFocusBtns 
=  $( ' ifocus_btn ' ).getElementsByTagName( ' li ' );
 var listLength 
=  iFocusBtns.length;
 iFocusBtns[
0 ].onmouseover  =  function() {
  moveElement(
' ifocus_piclist ' , 0 , 0 , 5 );
  classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
  classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 0 );
 }
 
if  (listLength >= 2 ) {
  iFocusBtns[
1 ].onmouseover  =  function() {
   moveElement(
' ifocus_piclist ' , 0 , - 225 , 5 );
   classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
   classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 1 );
  }
 }
 
if  (listLength >= 3 ) {
  iFocusBtns[
2 ].onmouseover  =  function() {
   moveElement(
' ifocus_piclist ' , 0 , - 450 , 5 );
   classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
   classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 2 );
  }
 }
 
if  (listLength >= 4 ) {
  iFocusBtns[
3 ].onmouseover  =  function() {
   moveElement(
' ifocus_piclist ' , 0 , - 675 , 5 );
   classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
   classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 3 );
  }
 }
}
setInterval(
' autoiFocus() ' , 3500 );
var atuokey 
=   false ;
function autoiFocus() {
 
if ( ! $( ' ifocus ' ))  return   false ;
 
if (atuokey)  return   false ;
 var focusBtnList 
=  $( ' ifocus_btn ' ).getElementsByTagName( ' li ' );
 var listLength 
=  focusBtnList.length;
 
for (var i = 0 ; i < listLength; i ++ ) {
  
if  (focusBtnList[i].className  ==   ' current ' ) var currentNum  =  i;
 }
 
if  (currentNum == 0 && listLength != 1  ){
  moveElement(
' ifocus_piclist ' , 0 , - 225 , 5 );
  classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
  classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 1 );
 }
 
if  (currentNum == 1 && listLength != 2  ){
  moveElement(
' ifocus_piclist ' , 0 , - 450 , 5 );
  classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
  classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 2 );
 }
 
if  (currentNum == 2 && listLength != 3  ){
  moveElement(
' ifocus_piclist ' , 0 , - 675 , 5 );
  classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
  classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 3 );
 }
 
if  (currentNum == 3  ){
  moveElement(
' ifocus_piclist ' , 0 , 0 , 5 );
  classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
  classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 0 );
 }
 
if  (currentNum == 1 && listLength == 2  ){
  moveElement(
' ifocus_piclist ' , 0 , 0 , 5 );
  classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
  classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 0 );
 }
 
if  (currentNum == 2 && listLength == 3  ){
  moveElement(
' ifocus_piclist ' , 0 , 0 , 5 );
  classNormal(
' ifocus_btn ' , ' ifocus_tx ' );
  classCurrent(
' ifocus_btn ' , ' ifocus_tx ' , 0 );
 }
}
addLoadEvent(iFocusChange);
</ script >

< div align = " center " >
    
< div id = " ifocus " >
        
< div id = " ifocus_pic " >
            
< div id = " ifocus_piclist "  style = " left: 0; top: 0; " >
                
< ul runat = " server "  id = " ulImgBig " >
                
</ ul >
            
</ div >
            
< div id = " ifocus_opdiv " >
            
</ div >
            
< div id = " ifocus_tx " >
                
< ul runat = " server "  id = " urImgTitle " >
                
</ ul >
            
</ div >
        
</ div >
        
< div id = " ifocus_btn " >
            
< ul runat = " server "  id = " ulImgSmall " >
            
</ ul >
        
</ div >
    
</ div >
</ div >

 

下面是控件后台和一个图片类的代码:

 

public   partial   class  WebParts_PicList : System.Web.UI.UserControl
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        ShowImages();
    }

    
public   void  ShowImages()
    {
        
for  ( int  i  =   0 ; i  <  ListImages.Count; i ++ )
        {
            
// 标题和小图
             if  (i  ==   0 )
            {
                urImgTitle.InnerHtml 
+=   " <li class='current'> "   +  listImages[i].ImageTitle1  +   " </li> " ;
                ulImgSmall.InnerHtml 
+=   " <li class='current'><img src=' "   +  listImages[i].ImageSrc1  +   " ' alt=' "   +  listImages[i].ImageAlt1  +   " ' /></li> " ;
            }
            
else
            {
                urImgTitle.InnerHtml 
+=   " <li class='normal'> "   +  listImages[i].ImageTitle1  +   " </li> " ;
                ulImgSmall.InnerHtml 
+=   " <li class='normal'><img src=' "   +  listImages[i].ImageSrc1  +   " ' alt=' "   +  listImages[i].ImageAlt1  +   " ' /></li> " ;
            }
            
// 大图
            ulImgBig.InnerHtml  +=   "     <li><a href= "   +  listImages[i].ImageHref1  +   "  target='_blank'><img src= "   +  listImages[i].ImageSrc1  +   "  alt= "   +  listImages[i].ImageAlt1  +   "  border='0' /></a></li> " ;
            
        }
    }


    
private  List < ShowImages >  listImages;

    
public  List < ShowImages >  ListImages
    {
        
get  {  return  listImages; }
        
set  { listImages  =  value; }
    }
}


// 图片的属性 
public   class  ShowImages
{
    
string  ImageSrc;
    
string  ImageHref;
    
string  ImageTitle;
    
string  ImageAlt;

    
public   string  ImageAlt1
    {
        
get  {  return  ImageAlt; }
        
set  { ImageAlt  =  value; }
    }

    
public   string  ImageSrc1
    {
        
get  {  return  ImageSrc; }
        
set  { ImageSrc  =  value; }
    }


    
public   string  ImageHref1
    {
        
get  {  return  ImageHref; }
        
set  { ImageHref  =  value; }
    }


    
public   string  ImageTitle1
    {
        
get  {  return  ImageTitle; }
        
set  { ImageTitle  =  value; }
    }

}

 

实现思路是 ShowImages的集合当作控件的一个属性.然后便利集合循环赋值.

下面是页面调用的代码:

 

        List < ShowImages >  listImages  =   new  List < ShowImages > ();
        ShowImages image1 
=   new  ShowImages();
        image1.ImageAlt1 
=   " 喵喵 " ;
        image1.ImageHref1 
=   " http://qixuejia.cnblogs.com " ;
        image1.ImageSrc1 
=   " http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e52b4cc5fe67c1a2dc328adb766f1633bfc02bb27fe17aa21ca1264a0dac599fc425faf65d1daac8ab7cb5923a15443882d9d0586694a0e5eb0671af60a2f6e739d3c15b1e52f2c518a00344fa791dbaee88cc43&a=25&b=23 " ;
        image1.ImageTitle1 
=   " 这是我的自画像 " ;

 

 

listImages.Add(image1);
        listImages.Add(image2);
        listImages.Add(image3);
        listImages.Add(image4);

        PicList1.ListImages 
=  listImages;

 

ok 一个简单的控件就实现了

 

 

 

转载于:https://www.cnblogs.com/qixuejia/archive/2010/04/24/AspNet-Control-ListImg.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4.1 使用控件显示文本 实例 显示密码格式文本 实例 显示长日期格式时间 实例 显示金额格式文本 4.2 使用控件显示图片 实例 显示验证码图片 实例 动态显示用户头像 实例 使用网页对话框显示图片 实例 实现上传图片 实例 GridView控件显示商品缩略图 4.3 控件的超级链接 实例 ImageButton按钮超级链接查看商品详细信息 实例 GridView控件中使用超级链接模板列查看详细信息 实例 DataList控件模板中使用LinkButton查看详细信息 4.4 下拉列表框的应用 实例 间接改变DropDownList当前选项 实例 实现多个DropDownList控件的联动 实例 动态添加、删除DropDownList控件选项 4.5 单选按钮的应用 实例 性别选择 实例 网络考试系统中单选题答案的选择 4.6 复选框的应用 实例 登录身份选择 实例 网络考试系统中多选题答案的选择 4.7 控件连接数据源 实例 通过向导配置AccessDataSource 实例 通过向导配置SqlDataSource 实例 通过向导配置XmlDataSource 4.8 GridView控件的应用 实例 数据绑定并实现分页功能 实例 选中、编辑、取消、删除数据项 实例 GridView实现正反双项排序功能 实例 GridView控件中DropDownList控件的绑定 实例 通过CheckBox删除选中记录 实例 删除GridView控件行信息弹出确认提示框 实例 在GridView控件实现自动编号 实例 GridView控件实现主细表 实例 查看当前页详细信息 实例 单元格中指定字符串固定长度 实例 供求信息网审核发布信息 实例 根据学生成绩合格与不合格显示不同颜色 4.9 DataList控件的使用 实例 绑定数据并实现分页 实例 编辑DataList控件模板显示员工信息 实例 DataList控件实现主细表 实例 DataList控件实现删除功能 4.9 Repeater控件的使用 实例 Repeater控件数据绑定 实例 Repeater控件分页 实例 编辑Repeater控件标识商品信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值