这是一款基于jQuery的百叶窗焦点图动画,和之前介绍的CSS3百叶窗焦点图动画不同的是,它的兼容性更好,实用性更强,因为它是基于纯jQuery的,基本上所有浏览器都能够支持。焦点图的图片切换动画是百叶窗的动画方式,但也有几种不同的百叶窗动画,因此也不会觉得单调。
HTML代码
<div id="slider"> <img src="/static/imghwm/default1.png" data-src="images/1.jpg" class="lazy" alt="jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)_jquery" title="脚本之家大全" /> <img src="/static/imghwm/default1.png" data-src="images/2.jpg" class="lazy" alt="脚本之家2" title="脚本之家大全" /> <img src="/static/imghwm/default1.png" data-src="images/3.jpg" class="lazy" alt="脚本之家3" title="脚本之家大全" /> </div>
CSS代码
#slider { position: relative; width: 600px; overflow: hidden; margin: 10px auto 30px auto; } #slider li { position: absolute; top: 0; left: 0; } .caption { opacity: 0.8; background: #000; height: 33px; padding: 5px 0 0 0; color: #fff; text-align: center; font: 25px/1 '微软雅黑'; z-index: 200; } .prev-link, .next-link { display: block; width: 24px; height: 24px; background-repeat: no-repeat; background-position: left top; position: absolute; bottom: 10px; z-index: 300; } .prev-link { left: 10px; background-image: url(prev.png ); } .next-link { left: 40px; background-image: url(next.png ); } .circle { display: block; width: 16px; height: 16px; background: url(circle-empty.png ) no-repeat left top; position: absolute; bottom: 10px; z-index: 300; } .circle-current { background-image: url(circle-full.png ); }
JavaScript代码
(function(a) { (function() { var b = false; var c = (/xyz/.test(function() { xyz })) ? (/\b_super\b/) : (/.*/); this.Class = function() {}; Class.extend = function(h) { var g = this.prototype; b = true; var f = new this(); b = false; for (var e in h) { if (typeof h[e] == "function" && typeof g[e] == "function" && c.test(h[e])) { f[e] = (function(i, j) { return function() { var l = this._super; this._super = g[i]; var k = j.apply(this, arguments); this._super = l; return k } })(e, h[e]) } else { f[e] = h[e] } } function d() { if (!b && this.init) { this.init.apply(this, arguments) } } d.prototype = f; d.constructor = d; d.extend = arguments.callee; return d } })(); a.fn.lateralSlider = function(b) { var d = { displayDuration: 2000, animateDuration: 1500, numColumns: 10, transitions: "fade,slideUp,slideDown,slideLeft,slideRight,slideUpAndDown,slideLeftAndRight,fadeAndSlideUp,fadeAndSlideDown,fadeAndSlideLeft,fadeAndSlideRight,fadeSlideUpAndRight,fadeSlideDownAndLeft", random: false, hidePrevAndNextArrows: false, hideSlideChooser: false, captionOpacity: 0.8 }; var c = a.extend({}, d, b); this.each(function() { var j = a(this); var t = Class.extend({ $imgs: null, size: null, displayImg: null, nextImg: null, numDivs: null, divWidth: null, baseCSS: null, $divs: null, transitions: [], transition: null, transitionCount: null, interval: null, width: null, init: function() { this.$imgs = a("img", j); this.size = this.$imgs.size(); this.$imgs.hide(); this.nextImg = 0; this.width = j.width(); this.numDivs = c.numColumns; this.divWidth = this.width / this.numDivs; this.baseCSS = { width: this.divWidth, position: "absolute", top: 0, backgroundRepeat: "no-repeat" }; this.createDivs(); this.$divs = a("div", j); this.transitionCount = -1 }, createDivs: function() { for (var A = 0; A < this.numDivs; A++) { var B = a("<div></div>"); B.css(this.baseCSS); B.css("left", this.divWidth * A); B.appendTo(j) } } }); var y = new t(); var g = Class.extend({ baseDuration: null, originalOffset: null, offset: null, init: function() { this.baseDuration = c.animateDuration / 8; this.originalOffset = 7 * c.animateDuration / (8 * y.numDivs); this.offset = 7 * c.animateDuration / (8 * y.numDivs) }, duration: function() { return this.baseDuration + this.offset }, increment: function() { this.offset += this.originalOffset }, reset: function() { this.offset = this.originalOffset }, getCSS: function(A) { return {} }, eachDiv: function() { return {} }, applyTransition: function() { y.$divs.each(this.eachDiv); this.reset() } }); var v = g.extend({ applyTransition: function() { var A = this; y.$divs.each(function() { var B = A.eachDiv; if (typeof(A.eachDiv) == "function") { B = B() } a(this).animate(B, A.duration()); A.increment() }); this.reset() } }); var m = v.extend({ getCSSIndex: null, eachDivIndex: null, getCSSGroup: null, eachDivGroup: null, init: function() { this._super(); this.getCSSGroup = new Array(); this.eachDivGroup = new Array(); this.getCSSIndex = 0; this.eachDivIndex = 0 }, getCSS: function(B) { var A = this.getCSSGroup[this.getCSSIndex]; this.getCSSIndex = (this.getCSSIndex + 1) % this.getCSSGroup.length; return A(B) }, addTransition: function(A) { this.getCSSGroup.push(A.getCSS); this.eachDivGroup.push(A.eachDiv) }, applyTransition: function() { var A = this; y.$divs.each(function() { var B = A.eachDivGroup[A.eachDivIndex]; if (typeof(B) == "function") { B = B() } a(this).animate(B, A.duration()); A.eachDivIndex = (A.eachDivIndex + 1) % A.eachDivGroup.length; A.increment() }); this.reset() } }); var u = v.extend({ getCSS: function(A) { return { opacity: 0 } }, eachDiv: { opacity: 1 } }); var f = v.extend({ getCSS: function(A) { return { top: y.$imgs.eq(y.nextImg).height() } }, eachDiv: { top: 0 } }); var h = v.extend({ getCSS: function(A) { return { height: 0 } }, eachDiv: function() { return { height: y.$imgs.eq(y.nextImg).height() } } }); var r = v.extend({ getCSS: function(B) { var A = B.css("left"); A = parseInt(A.substring(0, A.length - 2), 10); return { left: A + y.divWidth, width: 0 } }, eachDiv: { left: "-=" + y.divWidth, width: y.divWidth } }); var q = v.extend({ getCSS: function(A) { return { width: 0 } }, eachDiv: { width: y.divWidth } }); var o = m.extend({ addTransitions: function(A, B) { this.addTransition(A); this.addTransition(B) } }); var w = m.extend({ addTransitions: function(B, A) { this.addTransition(B); this.addTransition(A) } }); var k = m.extend({ addTransitions: function(A, B) { this.addTransition(A); this.addTransition(B) } }); var n = m.extend({ addTransitions: function(A, B) { this.addTransition(A); this.addTransition(B) } }); var p = m.extend({ addTransitions: function(A, B) { this.addTransition(A); this.addTransition(B) } }); var e = m.extend({ addTransitions: function(A, B) { this.addTransition(A); this.addTransition(B) } }); var x = m.extend({ addTransitions: function(A, C, B) { this.addTransition(A); this.addTransition(C); this.addTransition(B) } }); var s = m.extend({ addTransitions: function(C, A, B) { this.addTransition(C); this.addTransition(A); this.addTransition(B) } }); var z = { fade: new u(), slideUp: new f(), slideDown: new h(), slideLeft: new r(), slideRight: new q(), slideUpAndDown: new o(), slideLeftAndRight: new w(), fadeAndSlideUp: new k(), fadeAndSlideDown: new n(), fadeAndSlideLeft: new p(), fadeAndSlideRight: new e(), fadeSlideUpAndRight: new x(), fadeSlideDownAndLeft: new s() }; z.slideUpAndDown.addTransitions(z.slideUp, z.slideDown); z.slideLeftAndRight.addTransitions(z.slideLeft, z.slideRight); z.fadeAndSlideUp.addTransitions(z.slideUp, z.fade); z.fadeAndSlideDown.addTransitions(z.fade, z.slideDown); z.fadeAndSlideLeft.addTransitions(z.fade, z.slideLeft); z.fadeAndSlideRight.addTransitions(z.slideRight, z.fade); z.fadeSlideUpAndRight.addTransitions(z.slideUp, z.fade, z.slideRight); z.fadeSlideDownAndLeft.addTransitions(z.slideDown, z.fade, z.slideLeft); t.prototype.populateTransitions = function() { var B = c.transitions.split(/,\s*/g); for (var A in B) { this.transitions.push(z[B[A]]) } }; t.prototype.getTransition = function() { if (c.random) { var A = Math.floor(Math.random() * this.transitions.length); return this.transitions[A] } else { this.transitionCount = (this.transitionCount + 1) % this.transitions.length; return this.transitions[this.transitionCount] } }; t.prototype.addDivCSS = function() { var B = this; var C = B.$imgs.eq(B.nextImg); var D = "url(" + C.attr("src") + ")"; var A = C.height(); this.$divs.each(function() { var E = a(this); E.css({ backgroundImage: D, backgroundPosition: "-" + E.css("left") + " 0px", height: A }); E.css(B.transition.getCSS(E)) }) }; t.prototype.process = function() { j.css({ backgroundImage: "url(" + this.$imgs.eq(this.displayImg).attr("src") + ")", backgroundRepeat: "no-repeat" }); this.transition = this.getTransition(); this.addDivCSS(); this.transition.applyTransition(); j.animate({ height: this.$imgs.eq(this.nextImg).height() }, c.animateDuration); this.advanceShow() }; t.prototype.updateCurrent = function() { a('.circle[rel="' + this.displayImg + '"]').removeClass("circle-current"); a('.circle[rel="' + this.nextImg + '"]').addClass("circle-current") }; t.prototype.advanceShow = function() { this.updateCurrent(); this.displayImg = this.nextImg; if (this.nextImg == this.size - 1) { this.nextImg = 0 } else { this.nextImg++ } }; t.prototype.startShow = function() { this.interval = window.setInterval(a.proxy(this.runner, this), c.displayDuration + c.animateDuration) }; t.prototype.stopShow = function() { window.clearInterval(this.interval) }; t.prototype.goToSlide = function(A) { if (this.$divs.filter(":animated").size() > 0) { return } this.stopShow(); this.nextImg = A; this.updateCurrent(); this.runner(); if (this.nextImg == 0) { this.displayImg = this.size - 1 } else { this.displayImg = this.nextImg - 1 } this.startShow() }; t.prototype.applyLink = function() { var C = this.$imgs.eq(this.displayImg); var B = C.parent(); if (B.is("a")) { B.removeAttr("style") } var A = this.$imgs.eq(this.nextImg); var D = A.parent(); if (D.is("a")) { D.css({ display: "block", textDecoration: "none", border: "0", width: j.width(), height: A.height(), position: "absolute", top: 0, left: 0, zIndex: 100 }) } }; t.prototype.applyCaption = function() { var A = this.$imgs.eq(this.nextImg); var C = A.attr("title"); var D = a(".caption", j); D.slideUp(function() { a(this).html(C) }); if (C != "") { if (D.size() > 0) { if (!D.is(":visible")) { D.html(C) } D.slideDown() } else { var B = a('<div class="caption"><span>' + C + "</span></div>"); B.css({ opacity: c.captionOpacity, width: j.width(), position: "absolute", top: 0, left: 0, display: "none" }); B.appendTo(j); B.slideDown() } } }; t.prototype.runner = function() { this.applyLink(); this.applyCaption(); this.process() }; t.prototype.begin = function() { var A = this.$imgs.eq(this.nextImg); j.css({ backgroundImage: "url(" + A.attr("src") + ")", height: A.height() }); this.runner(); this.transitionCount--; this.startShow() }; var i = Class.extend({ circleCount: null, init: function() { this.circleCount = 0 }, addAll: function() { this.addCircles(); this.addPrevAndNextLinks(); a("a.circle").click(this.circleClickHandler); a(".prev-link").click(this.prevLinkHandler); a(".next-link").click(this.nextLinkHandler); if (c.hideSlideChooser) { a("a.circle").hide() } if (c.hidePrevAndNextArrows) { a(".prev-link, .next-link").hide() } }, addCircles: function() { var A = this; y.$imgs.each(function() { var B = a('<a href="#" rel="' + A.circleCount + '" class="circle"></a>'); B.css({ right: (y.size - A.circleCount - 1) * 20 + 10 }); B.appendTo(j); A.circleCount++ }) }, addPrevAndNextLinks: function() { a('<a href="#" class="prev-link"></a>').appendTo(j); a('<a href="#" class="next-link"></a>').appendTo(j) }, circleClickHandler: function(B) { var A = parseInt(a(this).attr("rel"), 10); y.goToSlide(A); B.preventDefault() }, prevLinkHandler: function(B) { var A = y.displayImg - 1; if (A < 0) { A = y.size - 1 } y.goToSlide(A); B.preventDefault() }, nextLinkHandler: function(B) { var A = y.displayImg + 1; if (A >= y.size) { A = 0 } y.goToSlide(A); B.preventDefault() } }); var l = new i(); l.addAll(); y.populateTransitions(); y.begin() }); return this } })(jQuery);
当然不要忘记在网页中引用jQuery的相关库文件。
关于jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)就给大家介绍到这里,希望对大家有所帮助!

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

10款趣味横生的jQuery游戏插件,让您的网站更具吸引力,提升用户粘性!虽然Flash仍然是开发休闲网页游戏的最佳软件,但jQuery也能创造出令人惊喜的效果,虽然无法与纯动作Flash游戏媲美,但在某些情况下,您也能在浏览器中获得意想不到的乐趣。 jQuery井字棋游戏 游戏编程的“Hello world”,现在有了jQuery版本。 源码 jQuery疯狂填词游戏 这是一个填空游戏,由于不知道单词的上下文,可能会产生一些古怪的结果。 源码 jQuery扫雷游戏

本教程演示了如何使用jQuery创建迷人的视差背景效果。 我们将构建一个带有分层图像的标题横幅,从而创造出令人惊叹的视觉深度。 更新的插件可与JQuery 1.6.4及更高版本一起使用。 下载

本文讨论了在浏览器中优化JavaScript性能的策略,重点是减少执行时间并最大程度地减少对页面负载速度的影响。

Matter.js是一个用JavaScript编写的2D刚体物理引擎。此库可以帮助您轻松地在浏览器中模拟2D物理。它提供了许多功能,例如创建刚体并为其分配质量、面积或密度等物理属性的能力。您还可以模拟不同类型的碰撞和力,例如重力摩擦力。 Matter.js支持所有主流浏览器。此外,它也适用于移动设备,因为它可以检测触摸并具有响应能力。所有这些功能都使其值得您投入时间学习如何使用该引擎,因为这样您就可以轻松创建基于物理的2D游戏或模拟。在本教程中,我将介绍此库的基础知识,包括其安装和用法,并提供一

本文演示了如何使用jQuery和ajax自动每5秒自动刷新DIV的内容。 该示例从RSS提要中获取并显示了最新的博客文章以及最后的刷新时间戳。 加载图像是选择


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。