jquery实现轮播插件
2020-12-13 16:33
标签:style class blog code java http 这几天用jquery写了两个轮播的插件,功能很简单。第一次尝试写插件,有很多不足的地方,代码如下: 注:图片链接请替换掉,配置信息必须加上图片width和height。 jquery实现轮播插件,搜素材,soscw.com jquery实现轮播插件 标签:style class blog code java http 原文地址:http://www.cnblogs.com/linxuehan/p/3799959.htmlDOCTYPE html>
html ng-app="myApp">
head lang="en">
meta charset="UTF-8">
link rel="stylesheet" href="css/bootstrap.min.css">
title>轮播动画title>
style type="text/css">
.marquee-wrap {
overflow: hidden;
margin: 0 auto;
position: relative;
top: 0;
left: 0;
}
.indicator {
list-style: none;
position: absolute;
right: 60px;
bottom: 4px;
z-index: 102;
}
.indicator li {
float: left;
width: 20px;
height: 20px;
border-radius: 50%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
background-color: #ffffff;
text-align: center;
margin: 2px;
}
.indicator li a {
color: #333;
text-decoration: none;
}
.indicator li.active {
background-color: rgb(255, 157, 51);
}
.indicator li.active a {
color: #ffffff;
}
.operator {
width: 100%;
padding: 0 16px;
position: absolute;
top: 40%;
left: 0;
z-index: 101;
}
.operator a {
font-size: 26px;
text-decoration: none;
color: #ffffff;
font-weight: 200;
}
.operator a:hover {
opacity: 0.9;
}
.marquee {
list-style: none;
margin: 0;
padding: 0;
overflow: hidden;
position: relative;
top: 0;
z-index: 99;
}
ul.marquee:after, ol.indicator:after, .operate:after {
display: block;
content: ".";
visibility: hidden;
height: 0;
clear: both;
*zoom: 1;
}
.marquee li {
float: right;
}
.my-marquee-wrap {
overflow: hidden;
margin: 20px auto;
}
.my-marquee {
position: relative;
top: 0;
left: 0;
margin: 0;
padding: 0;
}
.my-marquee li {
display: block;
position: absolute;
top: 0;
left: 0;
}
style>
head>
body>
div class="marquee-wrap" id="marquee">
ol class="indicator">
li class="active">a href="#">1a>li>
li>a href="#">2a>li>
li>a href="#">3a>li>
li>a href="#">4a>li>
li>a href="#">5a>li>
li>a href="#">6a>li>
ol>
ul class="marquee">
li>
a href="#" target="_blank">
img src="images/banner2.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner5.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner9.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner10.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner11.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner12.jpg">
a>
li>
ul>
div class="operator">
a href="#" class="next pull-right">span class="glyphicon glyphicon-chevron-right">span>a>
a href="#" class="prev pull-left">span class="glyphicon glyphicon-chevron-left">span>a>
div>
div>
div class="my-marquee-wrap" id="my-marquee">
ul class="my-marquee">
li>
a href="#" target="_blank">
img src="images/banner2.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner5.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner9.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner10.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner11.jpg">
a>
li>
li>
a href="#" target="_blank">
img src="images/banner12.jpg">
a>
li>
ul>
div>
script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js">script>
script>
(function ($) {
$.fn.slide = function (options) {
this.defaults={
slideDuration:2000,
animateDuration:4000
};
var settings= $.extend({},this.defaults,options);
return this.each(function () {
var $marquee = $(this).children(‘.marquee‘);
var $indicator = $(this).children(‘.indicator‘);
var $operator = $(this).children(‘.operator‘);
if(typeof settings.width!=‘undefined‘ && typeof settings.height!=‘undefined‘){
$(this).css({
width:settings.width,
height:settings.height
});
$marquee.css({
width:parseInt(settings.width)*3,
height:settings.height,
right:settings.width
});
}
var index= 0,interval="";
init();
function init(){
interval=window.setInterval(slide,settings.animateDuration);
}
function slide() {
$marquee.find(‘li‘).eq(0).animate({
opacity: 0,
width: 0
}, settings.slideDuration, function () {
index = index + 1 > 5 ? 0 : index + 1;
$indicator.find(‘li‘).eq(index).addClass(‘active‘).siblings().removeClass(‘active‘);
$marquee.find(‘li‘).eq(0).css({opacity: 1, width: settings.width}).appendTo($marquee);
});
}
$indicator.find(‘a‘).on(‘click‘, function (event) {
event.preventDefault();
clearInterval(interval);
var current = index;
index = $(this).text() - 1;
var temp = Math.abs(current - index);
if (current == index) {
return false;
}
else {
//修改循环队列
for (var i = 0; i temp; i++) {
if (current index) {
$marquee.find(‘li‘).eq(0).css({opacity: 1, width: settings.width}).appendTo($marquee);
}
else {
$marquee.find(‘li‘).last().css({opacity: 1, width: settings.width}).prependTo($marquee);
}
}
}
$indicator.find(‘li‘).eq(index).addClass(‘active‘).siblings().removeClass(‘active‘);
interval = window.setInterval(slide, settings.animateDuration);
});
$operator.find(‘.next‘).on(‘click‘, function (event) {
event.preventDefault();
clearInterval(interval);
$marquee.find(‘li‘).eq(0).animate({
opacity: 0,
width: 0
}, 600, function () {
index = index + 1 > 5 ? 0 : index + 1;
$indicator.find(‘li‘).eq(index).addClass(‘active‘).siblings().removeClass(‘active‘);
$marquee.find(‘li‘).eq(0).css({opacity: 1, width: settings.width}).appendTo($marquee);
});
interval = window.setInterval(slide, settings.animateDuration);
});
$operator.find(‘.prev‘).on(‘click‘, function (event) {
event.preventDefault();
clearInterval(interval);
$marquee.find(‘li‘).last().css({opacity: 0, width: "0"}).prependTo($marquee);
$marquee.find(‘li‘).eq(0).animate({
opacity: 1,
width: settings.width
}, 600, function () {
index = index - 1 0 ? 5 : index - 1;
$indicator.find(‘li‘).eq(index).addClass(‘active‘).siblings().removeClass(‘active‘);
});
interval = window.setInterval(slide, settings.animateDuration);
});
});
};
})(jQuery);
(function($){
$.fn.marquee=function(options){
this.defaults={
slideDuration:1500,
animateDuration:1000
};
var settings= $.extend({},this.defaults,options);
return this.each(function () {
var $marquee=$(this).children(‘.my-marquee‘);
var interval="";
if(typeof settings.width!=‘undefined‘ && typeof settings.height!=‘undefined‘){
$(this).css({
width:settings.width,
height:settings.height
});
}
init();
function init(){
interval = window.setInterval(slide, settings.animateDuration);
}
function slide(){
$marquee.find(‘li‘).last().fadeOut(settings.slideDuration,function(){
$(this).show().prependTo($marquee);
})
}
});
};
})(jQuery);
$(function () {
$(‘#marquee‘).slide({
width:‘1200px‘,
height:‘330px‘
});
$(‘#my-marquee‘).marquee({
width:‘1200px‘,
height:‘330px‘
});
});
script>
body>
html>