traansition三元操作符的判断?

traansition三元操作符的判断?

// 有则保留,无则为空
this.transitionClass = this.$items.eq(0).hasClass('transition') ? 'transition' : '';

this.$items.eq(index).removeClass(this.transitionClass).css('left', -1 * direction * this.itemWidth);console.log(this.transitionClass)
        setTimeout(function () {
            self.$items.eq(self.curIndex).move('x', direction * self.itemWidth);
            self.$items.eq(index).addClass(self.transitionClass).move('x', 0);console.log(this.transitionClass)
            self.curIndex = index; 
        }, 20);

js模式  

删除过渡:空

添加过渡:undefined

css3模式 

删除过渡:transition

添加过渡:undefine

这里实现原理没理解,特别是css3部分,麻烦老师再讲解下?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕嘟嘟 2019-08-09 12:07:11

同学你好,

①  这里的三元判断是为了解决每次都要判断是css还是js的方式非常麻烦,所以要在初始化的时候进行判断。

②  使用css3实现切换,有transtion的属性,且设置了left值。就不会瞬间的变过去而是会做动画,因此在初始设置中移除transtion是为了解决边界图片造成的以动画形式切换(就是一个向左一个向右)的问题。

③  其他不是边界图片的图片,需要使用transtion的属性,因为没有设置left,就会实现正常切换。如果初始位置left是728px,那切换之后left=0是向左滑动。

如果还有疑惑,可以在问答区再次提问,我们会继续为你解答的。

如果我的回答帮助了你欢迎采纳,祝学习愉快~


  • 提问者 慕前端5517794 #1
    老师,我的主要问题是css3模式下,transition在页面刷新后已经自动添加,但在上面代码执行过程,第1次是删除,第2次是添加。但第2次console.log输出undefined,说明经第1次删除后,第2次三元判断没有transiton,赋值空才会输出undefined,那这个时候是如何添加transition,实现效果的呢?
    2019-08-09 12:18:39
  • 好帮手慕嘟嘟 回复 提问者 慕前端5517794 #2
    同学你好, ① 在css3模式下,边界图片会一个向左边一个向右边移动,所以要解决这个问题就要先将transition移除掉,这样就可以做到瞬移没有动画的效果了。 ② 解决了边界图片没有瞬移效果,但是如果不添加transition那么所有的图片就都会瞬移,这样是不行的,所以在定时器中将transition加上,为了让别的图片有动画效果。 如果还有疑惑,可以在问答区再次提问,我们会继续为你解答的。 如果我的回答帮助了你欢迎采纳,祝学习愉快~
    2019-08-09 16:00:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师