jQuery焦点图切换特效插件封装
网站焦点图是一种网站内容的展现形式,可简单理解为一张图片或多张图片展现在网页上就是网站焦点图。在网站很明显的位置,用图片组合播放的形式,类似焦点新闻的意思只不过加上了图片。一般多使用在网站首页版面或频道首页版面,因为是通过图片的形式,所以有一定的吸引性、视觉吸引性。容易引起访问者的点击,据国外的设计机构调查统计,网站焦点图的点击率明显高于纯文字,转化率高于文字标题5倍。由此看来焦点图的能让游客对企业的第一印象大大提升,下面就给大家介绍一个我们项目中封装使用的漂亮大气的全屏焦点图。如下图所示:
可添加多个 图片,设定图片链接,导航随鼠标移动切换图片,在发布文章的时候把图片压缩了有点失真。
使用本特效首先需要引入对jquery的使用,插件已经封装成jquery函数,代码如下:
/* * jQuery图片轮播(焦点图)插件 */ (function ($) { $.fn.slideBox = function (options) { var defaults = { direction: 'left', duration: 0.6, easing: 'swing', delay: 3, startIndex: 0, hideClickBar: true, clickBarRadius: 5, hideBottomBar: false }; var settings = $.extend(defaults, options || {}); var wrapper = $(this), ul = wrapper.children('ul.items'), lis = ul.find('li'), firstPic = lis.first().find('img'); var li_num = lis.size(), li_height = 0, li_width = 0; var order_by = 'ASC'; var init = function () { if (!wrapper.size()) return false; li_height = lis.first().height(); li_width = lis.first().width(); wrapper.css({ width: li_width + 'px', height: li_height + 'px' }); lis.css({ width: li_width + 'px', height: li_height + 'px' }); if (settings.direction == 'left') { ul.css('width', li_num * li_width + 'px') } else { ul.css('height', li_num * li_height + 'px') }; ul.find('li:eq(' + settings.startIndex + ')').addClass('active'); if (!settings.hideBottomBar) { var tips = $('<div class="tips"></div>').css('opacity', 0.6).appendTo(wrapper); var title = $('<div class="title"></div>').html(function () { var active = ul.find('li.active').find('a'), text = active.attr('title'), href = active.attr('href'); return $('<a>').attr('href', href).text(text) }).appendTo(tips); var nums = $('<div class="nums"></div>').hide().appendTo(tips); lis.each(function (i, n) { var a = $(n).find('a'), text = a.attr('title'), href = a.attr('href'), css = ''; i == settings.startIndex && (css = 'active'); $('<a>').attr('href', href).text(text).addClass(css).css('borderRadius', settings.clickBarRadius + 'px').mouseover(function () { $(this).addClass('active').siblings().removeClass('active'); ul.find('li:eq(' + $(this).index() + ')').addClass('active').siblings ().removeClass('active'); start(); stop() }).appendTo(nums) }); if (settings.hideClickBar) { tips.hover(function () { nums.animate({ top: '0px' }, 'fast') }, function () { nums.animate({ top: tips.height() + 'px' }, 'fast') }); nums.show().delay(2000).animate({ top: tips.height() + 'px' }, 'fast') } else { nums.show() } }; lis.size() > 1 && start() }; var start = function () { var active = ul.find('li.active'), active_a = active.find('a'); var index = active.index(); if (settings.direction == 'left') { offset = index * li_width * -1; param = { 'left': offset + 'px' } } else { offset = index * li_height * -1; param = { 'top': offset + 'px' } }; wrapper.find('.nums').find('a:eq(' + index + ')').addClass('active').siblings().removeClass ('active'); wrapper.find('.title').find('a').attr('href', active_a.attr('href')).text(active_a.attr ('title')); ul.stop().animate(param, settings.duration * 1000, settings.easing, function () { active.removeClass('active'); if (order_by == 'ASC') { if (active.next().size()) { active.next().addClass('active') } else { order_by = 'DESC'; active.prev().addClass('active') } } else if (order_by == 'DESC') { if (active.prev().size()) { active.prev().addClass('active') } else { order_by = 'ASC'; active.next().addClass('active') } } }); wrapper.data('timeid', window.setTimeout(start, settings.delay * 1000)) }; var stop = function () { window.clearTimeout(wrapper.data('timeid')) }; wrapper.hover(function () { stop() }, function () { start() }); var imgLoader = new Image(); imgLoader.onload = function () { imgLoader.onload = null; init() }; imgLoader.src = firstPic.attr('src') } })(jQuery);
下面是图片焦点图的css样式;
div.slideBox{ position:relative;height:300px; overflow:hidden; margin:0 auto;}
div.slideBox ul.items{ position:absolute; float:left; background:none; list-style:none; padding:0px; margin:0px;}
div.slideBox ul.items li{ float:left; background:none; list-style:none; padding:0px; margin:0px;}
div.slideBox ul.items li a{ float:left; line-height:normal !important; padding:0px !important; border:none/*For IE.ADD.JENA.201206300844*/;}
div.slideBox ul.items li a img{ margin:0px !important; padding:0px !important; display:block; border:none/*For IE.ADD.JENA.201206300844*/;}
div.slideBox div.tips{ position:absolute; bottom:0px; width:100%; height:50px; background-color:#000; overflow:hidden;}
div.slideBox div.tips div.title{ position:absolute; left:0px; top:0px; height:100%;}
div.slideBox div.tips div.title a{ color:#FFF; font-size:18px; line-height:50px; margin-left:10px; text-decoration:none;}
div.slideBox div.tips div.title a:hover{ text-decoration:underline !important;}
div.slideBox div.tips div.nums{ position:absolute; right:0px; top:0px; height:100%;}
div.slideBox div.tips div.nums a{ display:inline-block; >float:left/*For IE.ADD.JENA.201206300844*/; width:20px; height:20px; background-color:#FFF; text-indent:-99999px; margin:15px 10px 0px 0px;}
div.slideBox div.tips div.nums a.active{ background-color:#093;}
页面配置:
<! 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 > < title ></ title > < script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></ script > < script src="Scripts/sliderbox.js" type="text/javascript"></ script > < script type="text/javascript"> $(function () { $(".slideBox").slideBox(); }) </ script > </ head > < body > < div class="slideBox" > < ul class="items"> < li >< a href="#" title="这里是测试标题一">< img src="/image/1.png" width="1000" height="300"></ a ></ li > < li >< a href="#" title="这里是测试标题2">< img src="/image/2.png" width="1000" height="300"></ a ></ li > < li >< a href="#" title="这里是测试标题3">< img src="/image/3.png" width="1000" height="300"></ a ></ li > < li >< a href="#" title="这里是测试标题4">< img src="/image/4.png" width="1000" height="300"></ a ></ li > < li >< a href="#" title="这里是测试标题5">< img src="/image/5.png" width="1000" height="300"></ a ></ li > </ ul > </ div > </ body > </ html > |
只需引入js并在页面中调用$(选择器).slideBox();便可实现如上效果,同时我们也可以在sliebox({})里面指定操作,比如起始图片,方向等。
这个是在前段时间一个项目中用到的图片轮播器插件,感觉还可以的可以直接拿来用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】