原生js实现简单的焦点图效果实例
家电修理 2023-07-16 19:17www.caominkang.com电器维修
用到一些封装好的运动函数,主要是定时器
效果为图片和图片的描述定时自动更换。
ul, li, p, h3 { padding: 0; margin: 0; list-style: none; } img { border: none; vertical-align: ; } #bg_box { idth: 1000px; height: 590px; margin: 50px auto; position: relative; background: url(img/bg1.jpg) no-repeat; } .pic { idth: 440px; height: 274px; position: absolute; : 50px; left: 220px; overflo: hidden; } .li_box { idth: 1760px; height: 274px; position: absolute; left: 0; } .tags { idth: 440px; height: 80px; position: absolute; bottom: -80px; background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, rgba(255, 255, 255, 0) 100%); color: hite; padding-left: 20px; padding-: 15px; box-sizing: border-box; } .tags:nth-of-type(1) { } .img { float: left; idth: 440px; height: 274px; } h3 { font: bold 20px/30px "微软雅黑"; } p { font: 16px/30px "微软雅黑"; }
下雨了~~~
这是一个适合在家睡觉的日子!!
包饺子~~~
一只会居家过日子的小狐狸!!
生气了~~~
吃掉好吃的就不生气了!!
出发了~~~
来一段说走就走的旅行!!
mom.js
function MTeen(obj,attr,end,duration,unit,ay,callBack){ if(obj.isAnim) return; //obj开始运动了 自定义属性 obj.isAnim = true; if(!ay){ //如果用户没有选择运动方式就默认匀速 ay = 'linear'; } if(!unit){ //如果用户没有选择运动方式就默认匀速 unit = ''; } var start = parseFloat(getStyle(obj,attr));//起始位置 // var end = 1000;//目标点 // var duration = 1000;//动画执行的总时间 单位是毫秒 var startTime = Date.no(); var s = end - start; //总路程 // var v = s/duration; //计算出来的速度 //每次20ms走一帧 clearInterval(timer); var timer = 0; timer = setInterval(function(){ var endTime = Date.no(); //计算出当前时间 var t = endTime-startTime; if(t>=duration){ t = duration; clearInterval(timer);//到达目标点要清除定时器 } // obj.style[attr] = ts/duration+start+'px'; // console.log(Teen[ay](t,start,s,duration)) obj.style[attr] = Teen[ay](t,start,s,duration)+unit; //透明度的兼容处理 if(attr=='opacity'){ obj.style.filter = 'Alpha(opacity='+Teen[ay](t,start,s,duration)100+')'; } if(t==duration){ obj.isAnim = false; //等到上一个动画完成 然后再调用 if(callBack){ callBack(); } } },20); }
teen.js
//Teen.linear(); var Teen = { linear: function (t, b, c, d){ //匀速 return ct/d + b; }, easeIn: function(t, b, c, d){ //加速曲线 return c(t/=d)t + b; }, easeOut: function(t, b, c, d){ //减速曲线 return -c (t/=d)(t-2) + b; }, easeBoth: function(t, b, c, d){ //加速减速曲线 if ((t/=d/2) < 1) { return c/2tt + b; } return -c/2 ((--t)(t-2) - 1) + b; }, easeInStrong: function(t, b, c, d){ //加加速曲线 return c(t/=d)ttt + b; }, easeOutStrong: function(t, b, c, d){ //减减速曲线 return -c ((t=t/d-1)ttt - 1) + b; }, easeBothStrong: function(t, b, c, d){ //加加速减减速曲线 if ((t/=d/2) < 1) { return c/2tttt + b; } return -c/2 ((t-=2)ttt - 2) + b; }, elasticIn: function(t, b, c, d, a, p){ //正弦衰减曲线(弹动渐入) if (t === 0) { return b; } if ( (t /= d) == 1 ) { return b+c; } if (!p) { p=d0.3; } if (!a || a < Math.abs(c)) { a = c; var s = p/4; } else { var s = p/(2Math.PI) Math.asin (c/a); } return -(aMath.po(2,10(t-=1)) Math.sin( (td-s)(2Math.PI)/p )) + b; }, elasticOut: function(t, b, c, d, a, p){ //正弦增强曲线(弹动渐出) if (t === 0) { return b; } if ( (t /= d) == 1 ) { return b+c; } if (!p) { p=d0.3; } if (!a || a < Math.abs(c)) { a = c; var s = p / 4; } else { var s = p/(2Math.PI) Math.asin (c/a); } return aMath.po(2,-10t) Math.sin( (td-s)(2Math.PI)/p ) + c + b; }, elasticBoth: function(t, b, c, d, a, p){ if (t === 0) { return b; } if ( (t /= d/2) == 2 ) { return b+c; } if (!p) { p = d(0.31.5); } if ( !a || a < Math.abs(c) ) { a = c; var s = p/4; } else { var s = p/(2Math.PI) Math.asin (c/a); } if (t < 1) { return - 0.5(aMath.po(2,10(t-=1)) Math.sin( (td-s)(2Math.PI)/p )) + b; } return aMath.po(2,-10(t-=1)) Math.sin( (td-s)(2Math.PI)/p )0.5 + c + b; }, backIn: function(t, b, c, d, s){ //回退加速(回退渐入) if (typeof s == 'undefined') { s = 1.70158; } return c(t/=d)t((s+1)t - s) + b; }, backOut: function(t, b, c, d, s){ if (typeof s == 'undefined') { s = 3.70158; //回缩的距离 } return c((t=t/d-1)t((s+1)t + s) + 1) + b; }, backBoth: function(t, b, c, d, s){ if (typeof s == 'undefined') { s = 1.70158; } if ((t /= d/2 ) < 1) { return c/2(tt(((s=(1.525))+1)t - s)) + b; } return c/2((t-=2)t(((s=(1.525))+1)t + s) + 2) + b; }, bounceIn: function(t, b, c, d){ //弹球减振(弹球渐出) return c - Teen['bounceOut'](d-t, 0, c, d) + b; }, bounceOut: function(t, b, c, d){// if ((t/=d) < (1/2.75)) { return c(7.5625tt) + b; } else if (t < (2/2.75)) { return c(7.5625(t-=(1.5/2.75))t + 0.75) + b; } else if (t < (2.5/2.75)) { return c(7.5625(t-=(2.25/2.75))t + 0.9375) + b; } return c(7.5625(t-=(2.625/2.75))t + 0.984375) + b; }, bounceBoth: function(t, b, c, d){ if (t < d/2) { return Teen['bounceIn'](t2, 0, c, d) 0.5 + b; } return Teen['bounceOut'](t2-d, 0, c, d) 0.5 + c0.5 + b; } }
以上这篇原生js实现简单的焦点图效果实例就是我分享给大家的全部内容了,电脑维修网希望能给大家一个参考,也电脑维修网希望大家多多支持考高分网。
空调维修
- 海信电视维修站 海信电视维修站点
- 格兰仕空调售后电话 格兰仕空调维修售后服务电
- 家电售后服务 家电售后服务流程
- 华扬太阳能维修 华扬太阳能维修收费标准表
- 三菱电机空调维修 三菱电机空调维修费用高吗
- 美的燃气灶维修 美的燃气灶维修收费标准明细
- 科龙空调售后服务 科龙空调售后服务网点
- 华帝热水器维修 华帝热水器维修常见故障
- 康泉热水器维修 康泉热水器维修故障
- 华凌冰箱维修电话 华凌冰箱维修点电话
- 海尔维修站 海尔维修站点地址在哪里
- 北京海信空调维修 北京海信空调售后服务
- 科龙空调维修 科龙空调维修故障
- 皇明太阳能售后 皇明太阳能售后维修点
- 海信冰箱售后服务 海信冰箱售后服务热线电话
- 海尔热水器服务热线