父子块元素初始化样式设置background- image,hover时改变两个块元素的background- image,初次hover会闪一下。

目前在做一个PC端项目,问题场景:

首页图片,父元素设置background- image为图片,子元素设置background- image为渐变色背景,当hover时候,更换父子元素的background- image图片或者背景色。

当页面初始化后,鼠标第一次hover,图片会闪一下hover时的渐变色背景,然后正常显示hover设置的父子background- image样式,之后每一次hover样式正常展示。

代码如下:

.item_box_w {

        background: url("/images/home_bg/case/wl.png");

        .item_box {

                background: linear-gradient(180deg, #4f6ca6 28%, rgba(80, 109, 166, 0.5) 100%);

        }

}

.item_box_w:hover {

        background: url("/images/home_bg/case/wlhover.png");

        .item_box {

             background: linear-gradient(180deg, #1c61eb 31%, rgba(28, 97, 235, 0.15) 100%);

        }

}

起初找不到问题原因,因为本地环境不会有这种情况,只有发到测试环境才会有。但是问题就是问题,我一次一次在测试环境初始化,观察初次hover的页面效果,最终确定原因是:父子元素的background-image加载顺序导致。

由于父元素background-image设置的是图片,子元素background-image设置的是渐变色,当鼠标初次hover是,二者同时加载,图片加载速度较慢,所以出现了上述的问题。

解决思路:将hover时需要展示的父元素图片背景在初始化时就加载到页面上,但是不展示,等到鼠标hover时再展示出来。

接下来就是不断的修改发测试修改发测试,功夫不负有心人~最终修改成功。

实现方法:在父子元素中间加一层盒子,原来的父元素变成祖父元素,新加的元素则为父元素。页面初始化时候,设置新的父元素background-image为hover时图片背景,background-size设为0,然后在hover时,设置新的父元素background-size为auto,用新父元素的背景覆盖祖父元素的background-image,代码如下:

.item_box_w {

        background: url("/images/home_bg/case/wl.png");

        .item_box_colorful {

                background: url("/images/home_bg/case/wlhover.png");

                background-size: 0;

                .item_box {

                        background: linear-gradient(180deg, #4f6ca6 28%, rgba(80, 109, 166, 0.5) 100%);

                }

        }

}

.item_box_w:hover {

        .item_box_colorful {

                background-size: auto;

                .item_box {

                     background: linear-gradient(180deg, #1c61eb 31%, rgba(28, 97, 235, 0.15) 100%);

                }

        }

}

就这样实现啦,原理就是初始化加载图片但不展示,需要的时候展示,就不会有加载先后的问题。

人生中第一篇博客,诚惶诚恐,请大家批评指正不吝赐教哦~如果有更好的实现思路,欢迎评论留言呀~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 Element UI 的 `el-table` 实现父子表格展示数据,且两个表格都带分页,可以按照以下步骤进行: 1. 创建一个父组件(ParentTable),内部包含两个子组件(ChildTable1、ChildTable2)。 2. 在父组件的模板中,使用 `el-table` 组件来展示数据,并使用 `el-pagination` 组件来实现分页功能。为每个表格设置唯一的 `ref`,用于后续操作。 3. 在父组件的脚本中,定义两个数据属性,分别用于存储子表格的数据和分页信息。 4. 在父组件的 `mounted` 钩子函数中,通过接口请求获取子表格的数据,并将数据存储到对应的数据属性中。 5. 在子组件的模板中,使用 `el-table` 组件来展示数据,并使用 `el-pagination` 组件来实现分页功能。为每个表格设置唯一的 `ref`,用于后续操作。 6. 在子组件的脚本中,接收父组件传递的数据和分页信息作为 props。 7. 在子组件的 `mounted` 钩子函数中,将传入的数据赋值给子表格的数据属性,并根据传入的分页信息进行分页逻辑处理。 8. 当用户切换分页或进行其他操作,在子组件中触发相应的事件,并通过接口请求获取对应的数据,并更新子表格的数据和分页信息。 9. 在父组件的脚本中,通过调用子组件的方法,实现父子组件之间的通信,例如子表格的分页切换操作触发父组件更新数据的函数。 通过以上步骤,你可以实现一个包含父子表格的功能,并且每个表格都带有分页功能。请根据实际情况调整代码和接口请求逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值