理解简单的轮播转换代码
Understanding simple carousel transition code
我是一个jQuery新手,基本上做了这个幻灯片过渡,它有最小和紧凑的代码:
$(function () {
var str_next = $('.cara .item').eq(1);
function slide(elem) {
elem.addClass('next');
$('.cara .item').each(function() {
if ($(this).hasClass('active')) {
console.log('does have it');
$(this).removeClass('active');
}
});
setTimeout(function () {
elem.removeClass('next').addClass('active');
}, 2000);
}
slide(str_next);
});
这里的小提琴
如果你仔细看一下jQuery,下面的代码行会导致一个幻灯片的过渡效果:
setTimeout(function(){
elem.removeClass('next').addClass('active');
}, 2000);
现在要发生过渡效果,将next
类附加到elem
上是非常重要的,但在上述代码中,next
类从elem
中移除,并且仍然存在过渡,为什么?
例如,如果我要将上面的代码行更改为:
setTimeout(function(){
elem.removeClass('next');
setTimeout(function() {
elem.addClass('active');
}, 500);
}, 2000);
没有过渡,那么下面的代码是怎么工作的呢:
setTimeout(function(){
elem.removeClass('next').addClass('active');
}, 2000);
为什么它是尽管删除next
类转换发生?
这个过渡无法播放,因为它依赖于图像的位置。
在图像滑入视图之前,将其显示属性设置为none,使其不可见且位置不变。
通过添加next类,项目的位置被设置为left: 100%,这导致它向右移动,有效地从视图中消失。
当你现在移除下一个类并添加活动类时,图像的display属性被设置为block,使其可见,并且通过移除下一个类,图像返回到其原始位置(在动画之后你可以看到它)
现在,如果你先删除下一个类,图像将移动到原来的位置,而不可见,这就是为什么没有动画。
那么回答你的问题:下一个类为移动动画提供了一个起始位置,如果图像不在起始位置,它就不必移动,所以没有动画
编辑说明:过渡总是在后台播放,只是因为添加了活动类,它才变得可见。因此,即使在添加活动类之前删除下一个类,过渡也会开始播放并变得可见。过渡来自下一个类的位置差异,图像的可见性来自活动类,这些是完全分开的。因此,当移除下一个类时,过渡总是播放,它只是不总是可见的。
相关文章:
- JavaScript代码问题:我正在将对象转换为数组
- 如何将字母转换为二进制代码
- js代码从jQuery转换为原生代码
- 将javascript代码转换为jquery代码时出错
- Javascript到jQuery的转换代码
- 将代码转换为可重用对象
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 需要帮助编写在不使用toString的情况下将十进制转换为二进制的代码
- 将mongoose javascript代码转换为typescript.此引用丢失
- 应用将图表转换为图像的jqplot代码时Chrome挂起
- 将JQuery代码转换为等效的JavaScript代码
- 将Google AdWords转换跟踪(javascript)代码添加到PrestaShop/Smarty页面中
- Google Adwords转换代码集成到Prestashop中的CMS页面
- 如何在点击链接后添加Facebook转换代码
- Volusion Java Script -如何安装ROI跟踪转换代码
- 如何在javascript字符串转换代码
- Javascript:转换代码字符串和返回
- 有人能解释一下这个基本转换代码吗?
- 为什么以这种方式转换代码
- 理解简单的轮播转换代码