前提:数据获取是在同一个js中,数据dom创建在同一处for循环中,放入同一个数组,dom中样式根据数据判断显示对应的class,部分展示的class差距较大:当某数据为空时对应class显示display:none或font-size:0等不显示较为简单的方法;当该数据不为空时显示对应的class较为复杂。
影响:dom渲染完成,功能也可使用,即点击有对应反应,但是前端页面(ios)部分列表可显示,部分列表无法显示,点击不隐藏部分数据的列表再点击有隐藏部分数据的列表无法显示,点击能显示的有隐藏部分数据的列表后剩余列表显示正常。
分析:
1.打印dom看是否生成,打印成功,dom生成
2.根据影响规律表明,由于列表展示使用的dom创建是在同一循环中,即为相继生成,隐藏和不隐藏数据之间产生了影响。
3.将隐藏和不隐藏的样式均写成不隐藏,发现使用正常。
4.担心为ios对display:none的解析问题,将隐藏方法由display:none改为font-size:0,使用仍回原本现象,出现老问题。
5.确认为隐藏与不隐藏之间样式转变过大,dom创建是在同一循环中,从而显示产生了影响。
6.将隐藏与不隐藏dom父元素样式写成一致,到需要隐藏的最里面的元素再隐藏。
解决:
同一dom中渲染不同样式之间差异不要转换太大,容易造成影响。