jQuery實(shí)現(xiàn)碎片輪播效果
本文實(shí)例為大家分享了jQuery實(shí)現(xiàn)碎片輪播效果的具體代碼,供大家參考,具體內(nèi)容如下
一、效果圖

二、核心代碼
碎片輪播.html
<script src="js/suiBanner.js"></script>?
<script>
? ? //實(shí)例化整個(gè)對(duì)象
? ? var suiBanner=$('.box').initBanner({
? ? ? ? imgs: ['images/1.jpg', 'images/2.jpg', 'images/3.jpg', 'images/4.jpg', 'images/5.jpg'], //圖片集合 必選
? ? ? ? size: {
? ? ? ? ? ? width: 1000,
? ? ? ? ? ? height: 560
? ? ? ? }, //容器的大小 可選
? ? ? ? //行數(shù)與列數(shù) 可選
? ? ? ? grid: {
? ? ? ? ? ? line: 15,
? ? ? ? ? ? list: 18
? ? ? ? },
? ? ? ? index: 0, //圖片集合的索引位置 可選
? ? ? ? boxTime: 1500, //小方塊來(lái)回運(yùn)動(dòng)的時(shí)長(zhǎng) 可選
? ? ? ? fnTime: 1000 //banner切換的時(shí)長(zhǎng) 可選
? ? })?
</script>?suiBanner.js
function(){
? ? var instance;
? ? $.fn.extend({
? ? ? ? initBanner:function(setting){
? ? ? ? ? ? if(!instance){
? ? ? ? ? ? ? ? instance=new SuiBanner();
? ? ? ? ? ? ? ? instance.option.container=$(this);
? ? ? ? ? ? ? ? instance.option= $.extend({},instance.option,setting);
? ? ? ? ? ? ? ? instance._init();
? ? ? ? ? ? ? ? return instance;
? ? ? ? ? ? }
? ? ? ? }
? ? });
? ? //碎片輪播的類
? ? function SuiBanner(){
? ? }
? ? //設(shè)置默認(rèn)配置
? ? SuiBanner.prototype={
? ? ? ? constructor:SuiBanner,
? ? ? ? option:{
? ? ? ? ? ? container:null,//默認(rèn)的容器
? ? ? ? ? ? imgs:[],//圖片集合必選
? ? ? ? ? ? size:{
? ? ? ? ? ? ? ? width:800,
? ? ? ? ? ? ? ? height:600
? ? ? ? ? ? },//容器的大小,可選
? ? ? ? ? ? grid:{
? ? ? ? ? ? ? ? line:8,
? ? ? ? ? ? ? ? list:12
? ? ? ? ? ? },
? ? ? ? ? ? index:0,//圖片集合的索引位置,可選
? ? ? ? ? ? boxTime:1000,//小方塊來(lái)回運(yùn)動(dòng)的時(shí)長(zhǎng),可選
? ? ? ? ? ? fnTime:3000,//banner切換的時(shí)長(zhǎng),可選
? ? ? ? ? ? sui:[],//碎片的集合
? ? ? ? ? ? suiPos:[],//存儲(chǔ)碎塊的最終位置
? ? ? ? ? ? timer:null,//接收計(jì)時(shí)器
? ? ? ? },
? ? ? ? _init:function(){
? ? ? ? ? ? var that=this,opt=this.option;
? ? ? ? ? ? //初始化方法
? ? ? ? ? ? //設(shè)置容器的樣式
? ? ? ? ? ? if(opt.container){
? ? ? ? ? ? ? ? opt.container.css({
? ? ? ? ? ? ? ? ? ? width:opt.size.width,
? ? ? ? ? ? ? ? ? ? height:opt.size.height
? ? ? ? ? ? ? ? });
? ? ? ? ? ? }
? ? ? ? ? ? //創(chuàng)建dom
? ? ? ? ? ? that.createDom();
? ? ? ? ? ? //開(kāi)始動(dòng)畫(huà)
? ? ? ? ? ? that.start();
? ? ? ? },
? ? ? ? createDom:function(){
? ? ? ? ? ? var that=this,opt=this.option;
? ? ? ? ? ? //創(chuàng)建dom元素
? ? ? ? ? ? opt.itemImage=$("<div class='itemImage'></div>");
? ? ? ? ? ? opt.imgs.forEach(function(img,index,arr){
? ? ? ? ? ? ? ? var img=$("<img src='"+img+"'/>");
? ? ? ? ? ? ? ? var aparent=$("<a href='#' style='z-index:"+(arr.length-index)+";'></a>");
? ? ? ? ? ? ? ? aparent.append(img);
? ? ? ? ? ? ? ? opt.itemImage.append(aparent);
? ? ? ? ? ? });
? ? ? ? ? ? opt.container.append(opt.itemImage);
? ? ? ? ? ? //創(chuàng)建一個(gè)碎片的容器
? ? ? ? ? ? opt.suiItem=$("<div class='suiItem'></div>");
? ? ? ? ? ? opt.container.append(opt.suiItem);
? ? ? ? ? ? //創(chuàng)建所有的碎片
? ? ? ? ? ? var html="";
? ? ? ? ? ? for(var i=0;i<opt.grid.line;i++){
? ? ? ? ? ? ? ? for(var k=0;k<opt.grid.list;k++){
? ? ? ? ? ? ? ? ? ? opt.suiPos.push([opt.size.width/opt.grid.list*k,opt.size.height/opt.grid.line*i]);
? ? ? ? ? ? ? ? ? ? html+="<div style='background-size: "+opt.size.width+"px
"+opt.size.height+"px;width:"+opt.size.width/opt.grid.list+"px;height:"+opt.size.height/opt.grid.line+"px;'></div>";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? opt.sui[0]=html;
? ? ? ? },
? ? ? ? start:function(){
? ? ? ? ? ? var that=this,opt=this.option;
? ? ? ? ? ? //開(kāi)始加載動(dòng)畫(huà)
? ? ? ? ? ? opt.suiItem.html("");
? ? ? ? ? ? opt.itemImage.children().eq(opt.index).show().siblings().hide();
? ? ? ? ? ? opt.timer=setTimeout(function(){
? ? ? ? ? ? ? ? opt.index++;
? ? ? ? ? ? ? ? if(opt.index>=opt.imgs.length-1){
? ? ? ? ? ? ? ? ? ? opt.index=0;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? that.animation();
? ? ? ? ? ? },opt.fnTime);
? ? ? ? },
? ? ? ? animation:function(){
? ? ? ? ? ? var that=this,opt=this.option;
? ? ? ? ? ? //設(shè)置小塊的隨機(jī)位置
? ? ? ? ? ? opt.suiItem.html(opt.sui[0]).children().each(function(index){
? ? ? ? ? ? ? ? //隨機(jī)自身的left、top
? ? ? ? ? ? ? ? var left=that.random(opt.size.width*2,opt.size.width/2);
? ? ? ? ? ? ? ? var top=that.random(opt.size.height*2,opt.size.height/2);
? ? ? ? ? ? ? ? $(this).css({
? ? ? ? ? ? ? ? ? ? left:left,
? ? ? ? ? ? ? ? ? ? top:top,
? ? ? ? ? ? ? ? ? ? backgroundImage:'url('+opt.imgs[opt.index]+')',
? ? ? ? ? ? ? ? ? ? backgroundPosition:-opt.suiPos[index][0]+'px '+(-opt.suiPos[index][1])+'px'
? ? ? ? ? ? ? ? }).animate({
? ? ? ? ? ? ? ? ? ? left:opt.suiPos[index][0],
? ? ? ? ? ? ? ? ? ? top:opt.suiPos[index][1]
? ? ? ? ? ? ? ? },opt.boxTime);
? ? ? ? ? ? }).last().queue(function(){
? ? ? ? ? ? ? ? that.start();
? ? ? ? ? ? ? ? $(this).dequeue();
? ? ? ? ? ? });
? ? ? ? },
? ? ? ? random:function(s,e){
? ? ? ? ? ? return Math.random()*s-e;
? ? ? ? }
? ? }?
})();?以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 12款經(jīng)典的白富美型—jquery圖片輪播插件—前端開(kāi)發(fā)必備
- Jquery代碼實(shí)現(xiàn)圖片輪播效果(一)
- 原生js和jquery實(shí)現(xiàn)圖片輪播特效
- jQuery圖片輪播的具體實(shí)現(xiàn)
- 基于JQuery的實(shí)現(xiàn)圖片輪播效果(焦點(diǎn)圖)
- jquery實(shí)現(xiàn)定時(shí)自動(dòng)輪播特效
- 原生js和jquery實(shí)現(xiàn)圖片輪播淡入淡出效果
- jquery 實(shí)現(xiàn)輪播圖詳解及實(shí)例代碼
- 利用jquery寫的左右輪播圖特效
- jQuery實(shí)現(xiàn)炸裂輪播效果
相關(guān)文章
為你的網(wǎng)站增加亮點(diǎn)的9款jQuery插件推薦
如今,jQuery插件眾多,滿足各種各樣的應(yīng)用需求。 在這篇文章中,我收集了9款很棒的插件,最喜歡的是Sausage內(nèi)容分頁(yè)插件,作者想法特別新穎!希望你能從中找到自己需要的插件。2011-05-05
利用jquery制作滾動(dòng)到指定位置觸發(fā)動(dòng)畫(huà)
本文只是一個(gè)簡(jiǎn)單的演示程序,大家可以根據(jù)自己的需求進(jìn)行修改,以達(dá)到自己想要實(shí)現(xiàn)的功能。2016-03-03
DIV隨滾動(dòng)條滾動(dòng)而滾動(dòng)的實(shí)現(xiàn)代碼【推薦】
下面小編就為大家?guī)?lái)一篇DIV隨滾動(dòng)條滾動(dòng)而滾動(dòng)實(shí)現(xiàn)代碼【推薦】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-04-04
EasySlider 基于jQuery功能強(qiáng)大簡(jiǎn)單易用的滑動(dòng)門插件
Easy Slider 是一個(gè)滑動(dòng)門插件,支持任何圖片或內(nèi)容,當(dāng)點(diǎn)擊時(shí)實(shí)現(xiàn)橫向或縱向滑動(dòng)。它擁有一系列豐富的參數(shù)設(shè)置,可通過(guò)CSS來(lái)進(jìn)行完全的控制。2010-06-06
jquery Firefox3.5中操作select的問(wèn)題
不過(guò)最近安裝了FF3.5正式版,發(fā)現(xiàn)這種方法在它下面得不到值,就去看jquery的幫助文檔,在文檔中對(duì)select選中的引用是用如下方法2009-07-07
關(guān)于query Javascript CSS Selector engine
本篇文章,小編將為大家介紹,關(guān)于query Javascript CSS Selector engine,有需要的朋友可以參考一下2013-04-04
jQuery結(jié)合ajax實(shí)現(xiàn)動(dòng)態(tài)加載文本內(nèi)容
本文實(shí)例講述了jquery通過(guò)ajax加載一段文本內(nèi)容的方法。分享給大家供大家參考。這是一個(gè)簡(jiǎn)單的例子,注意編碼問(wèn)題,否則可能會(huì)出現(xiàn)亂碼。2015-05-05

