jquery如何实现走马灯特效
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本文小编为大家详细介绍"jquery如何实现走马灯特效",内容详细,步骤清晰,细节处理妥当,希望这篇"jquery如何实现走马灯特效"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
数据库恢复技术采用的方法是
汝州市软件开发
行行查行业分析数据库
如何清理苹果5游戏数据库
c语音是软件开发吗
数据库未来的技术方向
自主可控软件开发费用是多少
长春软件开发培训班学费多少
虹口区品牌软件开发售后服务
安徽电脑服务器机箱怎么样
iosapp软件开发哪家靠谱
软件开发岗位责任制
知乎苏州软件开发公司
河北省对网络安全的重视
网络安全教育宣传口号
网络安全与反恐宣传周
程序设计软件开发的书籍
三级网络技术机试
2018网络安全博览会在哪
电脑网络技术有什么用
国际电子邮件服务器
苏州管理软件开发代码
怎么知道游戏服务器ip
1u服务器网卡
天全租房软件开发
江西非遗数据库
p2p的软件开发
河北省对网络安全的重视
审计局网络安全总结
设置某台电脑为代理服务器