关于视频里的问题

关于视频里的问题

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

2-9 视频里的14:50-15:40 这个地方不是很理解。

js._customShow = function($elem){

show($elem,function(){


$elem.show();

$elem.stop().animate($elem.data('styles'),function(){

$elem.data('status','shown').trigger('shown');

});

});

};


这里的styles为什么可以直接替换。看了几遍视频还是没明白。

在视频里js._customInit这个方法中赋了styles的值,值是一样的。所以后面js.customShow可以直接用$elem.data('styles')。但是这是个数组,animate()的第一个参数可以直接遍历styles这个数组吗?

我不知道怎么表达, 就是觉得很奇怪又说不出来哪里有问题……

正在回答

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

2回答

同学你好,同学理解的有些偏差。可参考下方进行理解。

1、styles是一个对象,通过循环进行赋值,代码如下:

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

通过这一步,styles这个对象里面就有值了,可以打印下:

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

控制台:

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

2、animate()的第一个参数就是一个集合,可以把$elem.data('styles')当做第一个参数。同学可以再理解下。

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

  • 夜魇丶 提问者 #1
    所以animate()的第一个参数,传入一个集合的话,animate()会遍历这个参数,然后把里面'width'等属性都赋上值,最后再执行后面的方法$elem.data('status','shown').trigger('shown'); 这样理解的对么…
    2019-11-14 10:08:27
好帮手慕言 2019-11-14 13:56:46

同学你好,是可以这样理解的,棒棒哒,继续加油,如果我的回答帮到了你,欢迎采纳,祝学习愉快~

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

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

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

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

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

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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