发送消息-续

发送消息-续

https://class.imooc.com/course/qadetail/212343

问题的前提:根据传入的 originalLeft 参数(this.$container 刚开始运动时的偏移位置),计算出这是第几张幻灯片,这张幻灯片就是已经完全隐藏了的幻灯片(slider-hidden)

也就是说要想实现发送消息,需要originalLeft 参数的值。问题来了:

originalLeft 参数是由 move.js 的 Js.prototype.to 方法在触发 moved 事件时传递的

为什么Css.prototype.to 方法不需要在触发 moved 事件时传递参数originalLeft


另,老师截图的问题,我还没发现。能不能说说

(发送消息如果不传递参数index和elem的话就没有意义了)

http://img1.sycdn.imooc.com//climg/5e90622f095f354500000000.jpg

正在回答

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

1回答

同学你好,对于你的问题解答如下:

  1. 理解的有些偏差,传入的originalLeft不影响消息的发送。

    originalLeft只是计算要显示和隐藏的元素对应的索引,不管这个索引值存不存在,都可以执行trigger触发slder-shown和slider-hidden。

    如果传入了originalLeft,那么在发送消息时,可以传递正确的索引值。如下所示:

    http://img1.sycdn.imooc.com//climg/5e915c4509f906da12421248.jpg

  2. 可以在slider.html中接受发送的消息,打印查看效果。如下:

    http://img1.sycdn.imooc.com//climg/5e915d4a0921382811100302.jpg

  3. 老师这里只给js方式的to方法中触发moved事件传递了参数,所以使用js方法时,发送消息,可以传递正确的索引值。

    http://img1.sycdn.imooc.com//climg/5e915d1a09ec074507560444.jpg

    http://img1.sycdn.imooc.com//climg/5e915d7a091957ce18620576.jpg

    使用css方式,因为没有传递参数,默认是undefined,所以计算结果为NAN,但是不会报错,那么发送消息时传递的索引值就是NAN。 如下:可以修改为css方式测试下

    http://img1.sycdn.imooc.com//climg/5e915de209ef591407640456.jpg打印结果如下:给slider-hidden和slider-shown发送消息传递的索引值是NAN.

    http://img1.sycdn.imooc.com//climg/5e915e0c0957088b21700724.jpg

    如果想要使用css方式,发送消息时也可以正常传递索引值,那么在css的to方法中也传递对应的参数就可以了。如下:

    http://img1.sycdn.imooc.com//climg/5e915e66096248cf14880592.jpg

    测试结果如下:

    http://img1.sycdn.imooc.com//climg/5e915e7e0978a89822420722.jpg

  4. 因为slider-show、slider-shown、slider-hide、slider-hidden主要是为了方便查看元素现在的状态,不需要做其他操作,也就是不会对传入的索引和元素进行操作,所以这里传不传递参数,效果是一样的。

同学可以结合上述示例测试理解下,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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