jquery如何实现走马灯特效
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本文小编为大家详细介绍"jquery如何实现走马灯特效",内容详细,步骤清晰,细节处理妥当,希望这篇"jquery如何实现走马灯特效"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年11月07日jquery如何实现走马灯特效
本文小编为大家详细介绍"jquery如何实现走马灯特效",内容详细,步骤清晰,细节处理妥当,希望这篇"jquery如何实现走马灯特效"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
话不多说,先上大致效果:
html代码:
注意:
类名不要随意更改(否则插件里面的也要更改),替换图片地址即可。
data-setting属性记得按照以上格式设置,不然可能报错
script代码:
注意:
要记得先引入jquery.js文件(可去官网下载:https://jquery.com/download/),再引入jquery.pokerCarousel.js文件
jquery.pokerCarousel.js文件完整代码:
var MIDDLE_PIC_POS = 1//计算如何用最短的距离移动到目标//由于有两种移动方式,向左边移动或者像右边移动,只需要在这两种方式中选择一个小的就行了;(function($){ var pokerCaroursel = function (caroursel){ var self = this; this.caroursel = caroursel; this.pokerList = caroursel.find(".poker-list"); this.pokerItems = caroursel.find(".poker-item"); this.firstpokerItem = this.pokerItems.first(); this.lastpokerItem = this.pokerItems.last(); this.prevBtn = this.caroursel.find(".poker-prev-btn"); this.nextBtn = this.caroursel.find(".poker-next-btn"); this.buttonItems = caroursel.find(".tabBtn"); //每个移动元素的位置索引,用于记录每个元素当前的位置,在每次移动的时候,该数组的值都会发生变化 //数组的下标对应li元素的位置索引 this.curPositions = []; for(var i = 0;i this.curPositions.length) {//移动超过末尾,则位置变成到开头 nextPos = nextPos - this.curPositions.length; }else if (nextPos < 1) {向左边移动已经移动到开始位置更左边,则位置变成结束 nextPos = this.curPositions.length + nextPos; } this.curPositions[i] = nextPos; } //console.log('after refreshPositions',this.curPositions); this.refreshCss(); }, cal_move_path:function(curPos,desPos,arraySize) { if(curPos == desPos) return null; //往左边移动 var goRightSteps; var goLeftSteps; var retDirect; var retStep; if(curPos > desPos){ goRightSteps = curPos - desPos; goLeftSteps = desPos + (arraySize - curPos); retDirect = (goRightSteps <= goLeftSteps) ? "left":"right"; return {"direct":retDirect,"step":Math.min(goLeftSteps,goRightSteps)}; } }, //点击位置按钮,根据点击的按钮索引 决定向左还是向右移动[因为只有三个位置,该方法能够仅靠向左或向右就能将 //指定的位置移动到中间] clickPosButtonIndex:function(index){ var self = this; if(self.rotateFlag == false) {//目前正在移动等移动结束后才能进入 return; } var curPos = this.curPositions[index]; var retPath = this.cal_move_path(curPos,MIDDLE_PIC_POS,this.curPositions.length); if (retPath == null){ return; } var direct = retPath.direct; var step = retPath.step; self.rotateFlag = false; self.rotateAnimate(direct,step) }, rotateAnimate:function(type,step){ step = step || 1; var that = this; var zIndexArr = []; var speed = that.setting.speed; this.pokerItems.each(function(){ var self = $(this); var destPic = null; var curPic = self; for (var i = 0; i < step;++i){ if(type == "left"){// 向左边移动, 下一张图片在自己的右边,所以用next() destPic = curPic.next().get(0)?curPic.next():that.firstpokerItem; } else{ destPic = curPic.prev().get(0)?curPic.prev():that.lastpokerItem; } curPic = destPic; } var width = destPic.css("width"); var height = destPic.css("height"); var zIndex = destPic.css("zIndex"); var opacity = destPic.css("opacity"); var left = destPic.css("left"); var top = destPic.css("top"); zIndexArr.push(zIndex); self.animate({ "width":width, "height":height, "left":left, "opacity":opacity, "top":top },speed,function(){ that.rotateFlag = true; }); }); this.pokerItems.each(function(i){ $(this).css("zIndex",zIndexArr[i]); }); if (type == 'right'){ this.refreshPositions(-step); }else{ this.refreshPositions(step); } }, setFirstPosition:function(){ this.caroursel.css({"width":this.setting.width,"height":this.setting.height}); this.pokerList.css({"width":this.setting.width,"height":this.setting.height}); var width = (this.setting.width - this.setting.pokerWidth) / 2; console.log(this.pokerItems.length) this.prevBtn.css({"width":width , "height":this.setting.height,"zIndex":Math.ceil(this.pokerItems.length/2)}); this.nextBtn.css({"width":width , "height":this.setting.height,"zIndex":Math.ceil(this.pokerItems.length/2)}); this.firstpokerItem.css({ "width":this.setting.pokerWidth, "height":this.setting.pokerHeight, "left":width, "zIndex":Math.ceil(this.pokerItems.length/2), "top":this.setVertialType(this.setting.pokerHeight) }); }, setSlicePosition:function(){ var _self = this; var sliceItems = this.pokerItems.slice(1), level = Math.floor(this.pokerItems.length/2), leftItems = sliceItems.slice(0,level), rightItems = sliceItems.slice(level), pokerWidth = this.setting.pokerWidth, pokerHeight = this.setting.pokerHeight, Btnwidth = (this.setting.width - this.setting.pokerWidth) / 2, gap = Btnwidth/level, containerWidth = this.setting.width; var i = 1; var leftWidth = pokerWidth; var leftHeight = pokerHeight; var zLoop1 = level; leftItems.each(function(index,item){ var scale = _self.setting.scale; if(index==1){ scale = scale*scale; } leftWidth = pokerWidth * scale; leftHeight = pokerHeight*scale; $(this).css({ "width":leftWidth, "height":leftHeight, "left": Btnwidth - i*gap, "zIndex":zLoop1--, "opacity":2/(i+1), "top":_self.setVertialType(leftHeight) }); i++; }); var j = level; var zLoop2 = 1; var rightWidth = pokerWidth; var rightHeight = pokerHeight; rightItems.each(function(index,item){ var scale = _self.setting.scale; if(index==0){ scale = scale*scale; } var rightWidth = pokerWidth * scale; var rightHeight = pokerHeight*scale; $(this).css({ "width":rightWidth, "height":rightHeight, "left": containerWidth -( Btnwidth - j*gap + rightWidth), "zIndex":zLoop2++, "opacity":2/(j+1), "top":_self.setVertialType(rightHeight) }); j--; }); }, getSetting:function(){ var settting = this.caroursel.attr("data-setting"); if(settting.length > 0){ return $.parseJSON(settting); }else{ return {}; } }, setVertialType:function(height){ var align = this.setting.align; if(align == "top") { return 0 }else if(align == "middle"){ return (this.setting.pokerHeight - height) / 2 }else if(align == "bottom"){ return this.setting.pokerHeight - height }else { return (this.setting.pokerHeight - height) / 2 } } }; pokerCaroursel.init = function (caroursels){ caroursels.each(function(index,item){ new pokerCaroursel($(this)); }) ; }; window["pokerCaroursel"] = pokerCaroursel;})(jQuery);// JavaScript Document css代码:
.main-box{ height: 352px; width:1118px;position: absolute;top: 122px;left: 32px;}.poker_box h3 {font-size: 30px;color: #015293;font-weight: bold;text-align: center;}.poker_box h4 {font-size: 16px;color: #015293;margin: 10px 0 35px;text-align: center;}.poker-content {width: 1129px;position: relative;width: 100%;height: 350px!important;margin-left: auto;margin-right: auto;}.poker-content img {display: block;box-shadow: 0px 0px 10px #222222;-webkit-box-shadow: 0px 0px 10px #222222;border: 0;}.poker-content a, .poker-content img {display: block;width: 100%;height: 100%;border: none;}img {border: none;display: block;}.poker-content .poker-list {width: 1118px;height: 500px;}.poker-content .poker-list .poker-item {width: 200px;height: 350px;position: absolute;left: 0;top: 0;}.poker-rad{ border-radius: 20px; overflow: hidden;}.poker-rai{ border-radius: 20px; overflow: hidden;}.poker-content .poker-list .poker-item .item {position: relative;width: 100%;height: 100%;}.poker-content .poker-btn {position: absolute;top: 0;cursor: pointer;filter: opacity(.5) brightness(1);}.poker-content .poker-btn:hover {filter: opacity(1) brightness(2);}.poker-content .poker-prev-btn {left: 0;}.poker-content .poker-next-btn {right: 0;}.poker-item-title {background:rgba(42, 42, 42, 0.8) none repeat scroll 0 0 !important;/*实现FF背景透明,文字不透明*/filter:Alpha(opacity=80); background:#2a2a2a;text-align: center;color: #FFF;width: 100%;height: 52px;line-height: 52px;position: absolute;bottom: 0;text-indent: 29px}读到这里,这篇"jquery如何实现走马灯特效"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
移动
位置
代码
元素
走马灯
特效
按钮
文件
文章
索引
内容
数组
方式
妥当
三个
下标
事件
只有
右边
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
端安卓软件开发
上海悦奕网络技术有限公司
lol连不上服务器防火墙
广州市乐游互联网科技有限公司
智斓软件开发有限公司
与网络安全相关的法律有哪些
苏州有什么大的软件开发公司
数据库参数查询是什么意思
软件开发 免费
查找数据库安全方案
当贝盒子做服务器
ps4猎人竞技场怎么选服务器
关于小学网络安全的画画
网络安全销售未来职业规划
信息网络技术书籍
网络安全专业课程的书
画出软件开发模型的v模型图
黄冈试卷软件开发
用那些软件开发c s结构
桓台中小企业oa软件开发公司
lol连不上服务器防火墙
交换数据库
校园网络安全隐患及其对策
软件开发研究经费包含什么
ea服务器一般什么时候刷新
当贝盒子做服务器
网络安全项目包括什么
小学网络安全防范
fifaol数据库
实现虚拟网络安全与


