图片轮播示例

好看的图片轮播示例
基于jQuery写的插件

(注:仿淘宝,图片是下载的,效果自己做的)

效果图:



demo.html
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>全屏图片切换</title>
<style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";}

/* flexslider */
.flexslider{position:relative;height:400px;overflow:hidden;background:url(img/loading.gif) 50% no-repeat;}
.slides{position:relative;z-index:1;}
.slides li{height:400px;position:absolute;z-index:1;width: 100%}
.flex-control-nav{position:absolute;bottom:10px;z-index:2;width:100%;text-align:center;}
.flex-control-nav li{display:inline-block;width:14px;height:14px;margin:0 5px;*display:inline;zoom:1;}
.flex-control-nav a{display:inline-block;width:14px;height:14px;line-height:40px;overflow:hidden;background:url(img/dot.png) right 0 no-repeat;cursor:pointer;}
.flex-control-nav .flex-active{background-position:0 0;}

.flex-direction-nav{position:absolute;z-index:3;width:100%;top:45%;}
.flex-direction-nav li a{display:block;width:50px;height:50px;overflow:hidden;cursor:pointer;position:absolute;}
.flex-direction-nav li a.flex-prev{left:40px;background:url(img/prev.png) center center no-repeat;}
.flex-direction-nav li a.flex-next{right:40px;background:url(img/next.png) center center no-repeat;}
</style>
</head>

<body>

<div style="height:80px;overflow:hidden;"></div>

<div class="flexslider">
	<ul class="slides">
		<li style="background:url(img/img1.jpg) 50% 0 no-repeat;opacity: 1;z-index: 2;"></li>
		<li style="background:url(img/img2.jpg) 50% 0 no-repeat;"></li>
		<li style="background:url(img/img3.jpg) 50% 0 no-repeat;"></li>
		<li style="background:url(img/img4.jpg) 50% 0 no-repeat;"></li>
		<li style="background:url(img/img5.jpg) 50% 0 no-repeat;"></li>
	</ul>
	<ol class="flex-control-nav flex-control-paging">
		<li><a class="flex-active">1</a></li>
		<li><a class="">2</a></li>
		<li><a class="">3</a></li>
		<li><a class="">4</a></li>
		<li><a class="">5</a></li>
	</ol>
	<ul class="flex-direction-nav">
		<li><a class="flex-prev" href="javascript:;"></a></li>
		<li><a class="flex-next" href="javascript:;"></a></li>
	</ul>
</div>
<script type="text/javascript" src="js/jquery-1.7.2.min.js" ></script>
<script type="text/javascript" src="js/demo.js" ></script>

</body>
</html>

js/jquery-1.9.0.js   下载地址

js/demo.js
(function(){
var slider={
	lenght:$('.slides li').length,
	index:0,
	pre:$('.flex-direction-nav .flex-prev'),
	next:$('.flex-direction-nav .flex-next'),
	indexBar:$('.flex-control-nav li'),
	timer:null,
	changing:false,
	init:function(){
		this.pre.click(function(){
			if(slider.changing){
				return;
			}
			slider.pause();
			slider.preStep(slider.index);
		});
		this.next.click(function(){
			if(slider.changing){
				return;
			}
			slider.pause();
			slider.nextStep(slider.index);
		});
		this.indexBar.click(function(event){
			if(slider.changing){
				return;
			}
			slider.pause();
			slider.indexControl(slider.indexBar.index(this));
			event.preventDefault();
		});
		this.start();
	},
	start:function(){
		slider.setTimer(setInterval(function(){
			slider.nextStep(slider.index);
		},5000)) ;
	},
	setTimer:function(timer){
		if(timer){
			clearInterval(slider.timer);
			slider.timer = timer;
		}else{
			slider.timer = timer;
		}
	},
	pause:function(){
		if(slider.timer){
			clearInterval(slider.timer);
			setTimeout(function(){
				slider.start();
			},200);
		}
	},
	stop:function(){
		
	},
	indexControl:function(index){
		console.log(index);
		var cur = $('.slides li').eq(slider.index),
		preIndex = index,
		pre = $('.slides li').eq(preIndex);
		this.change(cur);
		this.change(pre,'active');
		slider.indexBar.siblings().eq(slider.index).find('a').removeClass('flex-active');
		slider.indexBar.siblings().eq(preIndex).find('a').addClass('flex-active');
		slider.index = preIndex;
	},
	preStep:function(index){
		console.log(index);
		var cur = $('.slides li').eq(index),
		preIndex = index==0 ? slider.lenght-1:index-1,
		pre = $('.slides li').eq(preIndex);
		this.change(cur);
		this.change(pre,'active');
		slider.index = preIndex;
		slider.indexBar.siblings().eq(index).find('a').removeClass('flex-active');
		slider.indexBar.siblings().eq(preIndex).find('a').addClass('flex-active');
	},
	nextStep:function(index){
		console.log(index);
		var cur = $('.slides li').eq(index),
		nextIndex = index==slider.lenght-1 ? 0:index+1,
		next = $('.slides li').eq(nextIndex);
		this.change(cur);
		this.change(next,'active');
		slider.index = nextIndex;
		slider.indexBar.siblings().eq(index).find('a').removeClass('flex-active');
		slider.indexBar.siblings().eq(nextIndex).find('a').addClass('flex-active');
	},
	change:function(o,type){
		if(type=='active'){
			slider.changing = true;
			var timer = setInterval(function(){
				var i = parseFloat(o.css('opacity'));
				console.log('a',i);
				if(i<1){
					o.css('opacity',i+0.2);
				}else{
					clearInterval(timer);
					o.css('z-index',2);
					o.css('opacity',1);
					slider.changing = false;
				}
			},150);
			
		}else{
			var timer = setInterval(function(){
				var i = parseFloat(o.css('opacity'));
				console.log('b',i);
				if(i>0.3){
					o.css('opacity',i-0.2);
				}else{
					clearInterval(timer);
					o.css('z-index',1);
					o.css('opacity',0);
				}
			},150);
		}
	}
};
slider.init();
})($)

img/img1.png:


img/img2.png:



img/img3.png:



img/img4.png:


img/img5.png:



img/dot.png:



img/prev.png:



img/next.png:



img/loading.gif:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用Qt Creator实现图片轮播示例代码: 1. 创建一个新的Qt Widgets应用程序项目。 2. 在主窗口的设计界面中,添加一个QLabel控件,设置其名称为`label`,并设置其初始大小为400x300。 3. 在主窗口的设计界面中,添加一个QTimer控件,设置其名称为`timer`,并将其超时信号与槽函数`updateImage()`连接起来。 4. 在主窗口的头文件中添加以下代码: ```cpp private: QStringList images; int currentIndex; private slots: void updateImage(); ``` 5. 在主窗口的源文件中添加以下代码: ```cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QPixmap> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 初始化图片列表 images << "image1.jpg" << "image2.jpg" << "image3.jpg" << "image4.jpg"; currentIndex = 0; // 设置初始图片 updateImage(); // 启动定时器 ui->timer->start(2000); // 每隔2秒切换一张图片 } MainWindow::~MainWindow() { delete ui; } void MainWindow::updateImage() { // 读取当前图片路径 QString imagePath = images[currentIndex]; // 加载并显示图片 QPixmap pixmap(imagePath); ui->label->setPixmap(pixmap.scaled(ui->label->size(), Qt::KeepAspectRatio)); // 更新索引 currentIndex = (currentIndex + 1) % images.size(); } ``` 请注意,上述代码假设你有四张图片(`image1.jpg`,`image2.jpg`,`image3.jpg`和`image4.jpg`)放在与可执行文件相同的目录下。你可以根据实际情况修改图片的路径和数量。 运行上述代码后,将会在主窗口中显示一个大小为400x300的标签,每隔2秒切换一张图片
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值