当前位置:   article > 正文

前端面试项目细节重难点(十)(已工作|做分享)_前端面试被问到项目中难点

前端面试被问到项目中难点

面试官:现场出需求:我想让一个左侧盒子可以进行拉伸、缩小、展示或隐藏这些功能,你会如何实现?

答:(1)分析问题:其实,我听到这个问题后:

我的第一种想法:搜索以前项目经验过程中有没有是实现类似需求,那确实没有做过。

我的第二个想法:想一想有没有什么插件可以是西安该功能,我以前确实用到过一个drag可拖拽的插件,好像不符合需求。

我的第三个想法:自己先分析这个业务场景,然后根据该分析使用代码是实现该功能。【便于大家理解需求,还是附上一张原型图】

afc719cb48fb4ba1abbe1d475520cd51.png

 

(2)业务功能分析:

拉伸、缩小功能:用户拉动右侧拉伸杠时的步骤分析:用户在拉伸杠上按下鼠标->用户在页面上左右移动鼠标->用户在页面某一个位置手指从鼠标按钮上抬起,停止移动

展示、隐藏功能:用户点击右侧蓝色按钮时的步骤分析:用户点击蓝色按钮:如果盒子展示,则将盒子收起;如果盒子收起,则将盒子展开。

(3)代码逻辑分析:

拉伸、缩小功能:

第一个处理逻辑:在拉伸杠上绑定鼠标按下事件,即mousedown

第二个处理逻辑:在页面上触发鼠标移动事件,即mousemove

第三个处理逻辑:在页面上触发鼠标停下事件,即mouseup

展示、隐藏功能:在蓝色按钮上绑定点击事件,控制盒子的显隐

(4)代码实现:【代码逻辑和重点内容已在代码中进行备注,大家仔细看看】

ac19805fbca24a11a532fba986c7c97e.png

da49ce83c1a04d39a9d166e708b03b11.png 

911576e7731f4c94a1415aa921eb0b50.png 

73890aa8aa6c45b4a5252aa3d8c9220a.png 

9bbdf0e8898e495a99305f37b6671c66.png 

a3efe426df2349998ffb2df19a3e8091.png 

(5)知识点运用:你能区分event.clientX、ref.$el.getBoundingClientRect()和document.body.offsetWidth?

ebaa992e0814479184506286c7954f23.png 

附上两张图片帮助你们理解:

595be1ca79854cca9f7ec9578f38be44.png

781559cac7fe4183abadc129c0708e2a.png 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/929938
推荐阅读
相关标签
  

闽ICP备14008679号