Javascript 在swipe.js中,translate函数中的这段代码中发生了什么?

Javascript 在swipe.js中,translate函数中的这段代码中发生了什么?,javascript,Javascript,我试图了解swipe.js的工作原理,以便构建自己的图像滑块。你能帮我了解这里发生了什么吗 function translate(index, dist, speed) { var slide = slides[index]; var style = slide && slide.style; if (!style) return; style.webkitTransitionDuration = style.MozTransitionDuration

我试图了解swipe.js的工作原理,以便构建自己的图像滑块。你能帮我了解这里发生了什么吗

function translate(index, dist, speed) {

  var slide = slides[index];
  var style = slide && slide.style;

  if (!style) return;

  style.webkitTransitionDuration =
  style.MozTransitionDuration =
  style.msTransitionDuration =
  style.OTransitionDuration =
  style.transitionDuration = speed + 'ms';

  style.webkitTransform = 'translate(' + dist + 'px,0)' + 'translateZ(0)';
  style.msTransform =
  style.MozTransform =
  style.OTransform = 'translateX(' + dist + 'px)';

}
链接到功能转换(索引、距离、速度){ //按索引获取幻灯片 var幻灯片=幻灯片[索引]; //获取分配给幻灯片的样式。如果未找到幻灯片 //这将返回false。 var style=slide&&slide.style; //如果没有找到样式,则返回(不执行任何操作) 如果(!style)返回; //在Javascript中,您可以一次分配多个变量。例如, //“var a=b=c=10;”。这将把所有3个变量分配给 //在下面的代码中,它为每个自定义浏览器指定一个转换(自每个 //浏览器具有其使用的自定义属性)。msTransitionDuration为 //对于Microsoft(IE)、用于Chrome的webkit、用于Firefox的Moz等 //每一个都是“ms”,速度是传递到 //函数。看起来很奇怪,因为每个变量都在它自己的行上, //但是你可以想象我上面提供的例子。 style.webkitt转换持续时间= style.MozTransitionDuration= style.msTransitionDuration= 风格转换持续时间= style.transitionDuration=速度+毫秒; //现在,指定转换方法。Chrome使用不同的格式,因此 //它得到自己的字符串。ms、Moz和O是相同的,所以它们是相同的 //以类似的样式指定给上面的块。 style.webkitttransform='translate('+dist+'px,0)'+'translateZ(0)'; style.msTransform= style.MozTransform= style.OTransform='translateX('+dist+'px'); }
函数转换(索引、距离、速度){
//按索引获取幻灯片
var幻灯片=幻灯片[索引];
//获取分配给幻灯片的样式。如果未找到幻灯片
//这将返回false。
var style=slide&&slide.style;
//如果没有找到样式,则返回(不执行任何操作)
如果(!style)返回;
//在Javascript中,您可以一次分配多个变量。例如,
//“var a=b=c=10;”。这将把所有3个变量分配给
//在下面的代码中,它为每个自定义浏览器指定一个转换(自每个
//浏览器具有其使用的自定义属性)。msTransitionDuration为
//对于Microsoft(IE)、用于Chrome的webkit、用于Firefox的Moz等
//每一个都是“ms”,速度是传递到
//函数。看起来很奇怪,因为每个变量都在它自己的行上,
//但是你可以想象我上面提供的例子。
style.webkitt转换持续时间=
style.MozTransitionDuration=
style.msTransitionDuration=
风格转换持续时间=
style.transitionDuration=速度+毫秒;
//现在,指定转换方法。Chrome使用不同的格式,因此
//它得到自己的字符串。ms、Moz和O是相同的,所以它们是相同的
//以类似的样式指定给上面的块。
style.webkitttransform='translate('+dist+'px,0)'+'translateZ(0)';
style.msTransform=
style.MozTransform=
style.OTransform='translateX('+dist+'px');
}

以下是每一行的注释:

  // get the specific slide, using the parameter index, from some higher-scoped variable called slides
  var slide = slides[index];
  // if slide isn't falsey, style = slide.style, otherwise style = falsey;
  var style = slide && slide.style;

  // if style is falsey, go away
  if (!style) return;

  // set all these different transition durations, since each browser wants different style settings, all to the same value: speed + 'ms'
  // (reformatted to make the = less confusing)
  style.webkitTransitionDuration = style.MozTransitionDuration = style.msTransitionDuration = style.OTransitionDuration = style.transitionDuration = speed + 'ms';

  style.webkitTransform = 'translate(' + dist + 'px,0)' + 'translateZ(0)';
  // similarly, set all these different transforms to translateX( + dist + px)
  style.msTransform = style.MozTransform = style.OTransform = 'translateX(' + dist + 'px)';

以下是每一行的注释:

  // get the specific slide, using the parameter index, from some higher-scoped variable called slides
  var slide = slides[index];
  // if slide isn't falsey, style = slide.style, otherwise style = falsey;
  var style = slide && slide.style;

  // if style is falsey, go away
  if (!style) return;

  // set all these different transition durations, since each browser wants different style settings, all to the same value: speed + 'ms'
  // (reformatted to make the = less confusing)
  style.webkitTransitionDuration = style.MozTransitionDuration = style.msTransitionDuration = style.OTransitionDuration = style.transitionDuration = speed + 'ms';

  style.webkitTransform = 'translate(' + dist + 'px,0)' + 'translateZ(0)';
  // similarly, set all these different transforms to translateX( + dist + px)
  style.msTransform = style.MozTransform = style.OTransform = 'translateX(' + dist + 'px)';

奇怪的
=
语句?这只是一条长长的队伍。所有持续时间=速度+毫秒,所有变换=translateX('+dist+'px)'Ye,基本上,编译器从左边开始,不断地将变量分配给彼此。如果你开始使用旧的jquery动画,而不是使用css转换,你不是会更好吗?@aldux你为什么这么说?@JGallardo我的意思是,这两种方法在某种程度上都会起作用,但是jQuery为您提供了开箱即用的跨浏览器兼容性,而且由于您似乎已经开始学习javascript(我假设是这样),这将是一件不必担心的事情。奇怪的
=
语句?这只是一条长长的队伍。所有持续时间=速度+毫秒,所有变换=translateX('+dist+'px)'Ye,基本上,编译器从左边开始,不断地将变量分配给彼此。如果你开始使用旧的jquery动画,而不是使用css转换,你不是会更好吗?@aldux你为什么这么说?@JGallardo我的意思是,这两种方法在某种程度上都会起作用,但是jQuery为您提供了开箱即用的跨浏览器兼容性,而且既然您似乎开始学习javascript(我假设是这样),那就不用担心了。哦,好吧,我想知道为什么
style.
被重复了这么多,好吧,我想知道为什么
style.
被重复了这么多