王朝网络
分享
 
 
 

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

王朝学院·作者佚名  2010-04-26  
宽屏版  字体: |||超大  

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

贴出来控件页面的代码.

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 一个简单的控件就实现了

http://www.cnblogs.com/qixuejia/archive/2010/04/24/AspNet-Control-ListImg.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有