html图片先隐藏后出现,设置display:none的图片,会在加载时先加载显示再隐藏

在Bootstrap导航栏中,遇到一个需求:根据屏幕尺寸和滚动位置切换不同图片。手机和平板显示img1,宽屏且未滚动时显示img2,滚动超过150px则显示img3。当前通过jQuery实现,但存在img2初次加载时短暂显示再隐藏的问题,影响用户体验。作者考虑过使用CSS媒体查询,但担心失去滚动事件监听。寻求优化解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题,

用的是bootstrap的导航栏

我有三个图片(img1,img2,img3)

一个img1是宽度768px以下的,即手机平板端logo,

另一个img2是768px以上,滚动条没拉下去时的logo,那个时候导航是透明背景的,

第三张img3是768px以上,然后滚动条拉动到大概150左右就会出现的图片logo,这个时候导航背景色是白色,

最开始写的是

$(window).scroll(function(){

myFun1();

})

function myFun1 (){

if(document.body.clientWidth) {

if($(window).scrollTop() > 150) {

$('.img3').css({'display':'none'});

$('.img2').css({'display':'block'});

$('.img1').css({'display':'none'});

}else {

$('.img3').css({'display':'none'});

$('.img2').css({'display':'none'});

$('.img1').css({'display':'block'});

}

}else {

$('.img3').css({'display':'block'});

$('.img2').css({'display':'none'});

$('.img1').css({'display':'none'});

}

}

那么问题来了,我设置的display:none的图片,也就是img2 他会在页面刚进去的时候显示以下然后再隐藏,这样的话效果不是很好,

可能有人问我为什么不用css的媒体查询做隐藏,但是这样我滚动条事件就没辙了...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值