原生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实现简单的焦点图效果实例就是我分享给大家的全部内容了,电脑维修网希望能给大家一个参考,也电脑维修网希望大家多多支持考高分网。
空调维修
- 我的世界电脑版运行身份怎么弄出来(我的世界
- 空调抽湿是什么意思,设置抽湿的温度有什么意
- 方太燃气灶有一个打不着火 怎么修复与排查方法
- 夏季免费清洗汽车空调的宣传口号
- 清洗完空调后出现漏水现象
- iphone6能玩什么游戏(iphone6游戏)
- 如何设置电脑密码锁屏(如何设置电脑密码锁屏
- win10删除开机密码提示不符合密码策略要求
- 电脑w7显示不是正版(w7不是正版怎么解决)
- 万家乐z8热水器显示e7解决 怎么修复与排查方法
- 1匹空调多少瓦数(1匹空调多少瓦)
- 安卓手机连接电脑用什么软件好(关于安卓手机
- 电脑网页看视频卡是什么原因(爱拍看视频卡)
- 华帝燃气灶点火器一直响然后熄火怎么办:问题
- 电脑壁纸怎么换(关于电脑壁纸怎么换的介绍)
- 冬天空调的出风口应该朝什么方向(冬天空调风