JS实现滚轮滑动图片拉伸并替代效果

效果是模仿网站首页进去之后页面伸缩的效果。


前言

效果是模仿网站首页进去之后页面伸缩的效果。

一、效果实现-JS方法

这个是实现的方法,当事件触发时对图片和头部元素进行控制

function picChange(){
    let head = document.querySelector('.head_box')//获取头部元素
    let pic = document.querySelector('.headbgi-1')
    let pic2 = document.querySelector('.headbgi-2')//这两行为获取两张图片
    head.className = 'head_box'//移除了big,将高度改变成360像素,下面两个也是如此。
    pic.className = 'headbgi-1'
    pic2.className = 'headbgi-2'
    pic.style.zIndex = -3 //将大的图片放到小的图片下面
}

二、JS触发的情况

1.鼠标往下滚动

代码如下(示例):

window.addEventListener("wheel", function(e) { //鼠标滚动监听
    if (e.deltaY > 0) {  //如果发现是往下滚动的时候
        picChange()
    }
});

2.页面一开始就不在顶部

代码如下(示例):

if(document.documentElement.scrollTop>0){ //有可能页面不是在顶部时候刷新
    picChange()
}

三、CSS编写

1.图片CSS

//图片
    .headbgi-1{
        position: absolute;
        top: 0;
        left: 0;
        width: 1920px;
        height: auto;
        z-index: -1;
        transition: all .6s;
    }
    .headbgi-2{
        position: absolute;
        top: 0;
        left: 0;
        width: 1920px;
        height: 360px;
        opacity: 1;
        transition: all .6s;
        z-index: -2;
    }

2.头部的CSS

.head_box{
    position: relative;
    height: 360px;
    transition: all .6s;
}
.big{
    height: 720px !important;//这样子一开始头部大小就是大图片的大小
    .headbgi-2{
        opacity: 0 !important;
        height: 720px !important;//这里也是为了配合视觉效果
    }
}

四.页面HTML

        这里就不展示了,只要一个头部div里套了两个图片标签就ok。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值