jquery如何实现走马灯特效
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本文小编为大家详细介绍"jquery如何实现走马灯特效",内容详细,步骤清晰,细节处理妥当,希望这篇"jquery如何实现走马灯特效"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年02月23日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;ithis.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安全错误
数据库的锁怎样保障安全
服务器安装iis管理器
coc有没有定位服务器
计算机网络技术实验总结万能
免费透明代理服务器
北理工汽车网络技术
郧西质量软件开发
宝山区软件开发专业
大学选修课网络技术应用
服务器配置升级
DNS服务器求助方法有哪些
中国提供企业网络安全
无线网络技术选择题题库
小米数据库技术分析
如何看服务器内存配置
mvc 数据库动态导航菜单
网络安全执法检查笔录
河北金墨互联网科技有限公司
delphi 数据库查询
网络安全问题研究性报告
江苏服务器硬盘质保期
三新技术网络技术培训
东莞百望服务器地址
网络安全英文儿歌
湖北推广软件开发商家
20万软件开发做账
人工智能和软件开发比较
数据库设置默认路径
服务器配置多少内存
建一个带数据库的网站
软件开发服务费会计