原生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实现简单的焦点图效果实例就是我分享给大家的全部内容了,电脑维修网希望能给大家一个参考,也电脑维修网希望大家多多支持考高分网。

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by