位置: IT常识 - 正文

JavaScript实现背景图像切换3D动画效果(javascript背景图片怎么导入)

编辑:rootadmin
原力计划JavaScript实现背景图像切换3D动画效果

推荐整理分享JavaScript实现背景图像切换3D动画效果(javascript背景图片怎么导入),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:怎么用js设置html的背景图片,怎么用js设置html的背景图片,javascript背景图片,javascript背景,javascript背景,javascript背景图片,javascript背景图片,javascript怎么设置背景图,内容如对您有帮助,希望把文章链接给更多的朋友!

🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫优质专栏:vue3从入门到精通、TypeScript从入门到实践 📢 资料领取:前端进阶资料以及文中源码可以找我免费领取 🔥 前端学习交流:博主建立了一个前端交流群,汇集了各路大神,一起交流学习,期待你的加入!(文末有我wx或者私信)。

目录一、项目需求二、代码实现三、问题一、项目需求

给一张长图,长图中有好多个图像,图像的动作是连续的,当鼠标在容器内移动时,背景图像会随之切换,呈现出连续的动画效果,实现效果类似于3D动画,用JS怎么实现?以下是实现效果。 示例图片如下,可拿去自己测试:

二、代码实现<body><div id="container"></div><style>#container {width: 462.99px;//单个图像的宽度height: 260.433px;//单个图像高度background-image: url('https://www.yuucn.com/wp-content/uploads/2023/05/1683927707-2561c98a1454a94.jpeg');background-repeat: no-repeat;background-size: 6944.88px 260.433px;//参数讲解在最后}</style><script>const container = document.getElementById('container');let currentIndex = 0;container.addEventListener('mousemove', (event) => {const containerRect = container.getBoundingClientRect();const mouseOffsetX = event.clientX - containerRect.left;const imageCount = 15; // 图像的数量const imageWidth = 462.99; // 单个图像的宽度const index = Math.floor(mouseOffsetX / (containerRect.width / imageCount));currentIndex = Math.min(Math.max(index, 0), imageCount - 1);const positionX = currentIndex * imageWidth;container.style.backgroundPosition = `-${positionX}px 0`;});</script></body>

1.先获取container的

JavaScript实现背景图像切换3D动画效果(javascript背景图片怎么导入)

currentIndex 用于存储当前背景图像的索引值,初始值为 0。 如果鼠标在容器的左边缘,则索引为 0;如果鼠标在容器的右边缘,则索引为图像数量减 1。 Math.min(Math.max(index, 0), imageCount - 1)将计算出来的索引值限制在 0 到 imageCount - 1 的范围,防止出现索引越界。如果计算出所以为imageCount,那么最终计算出的索引是imageCount-1

mousemove mousemove 事件监听器,鼠标在某元素上移动时触发,在事件处理函数中实现了图像切换的逻辑。

getBoundingClientRect(点击查看MDN详细讲解) 用于获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。提供了元素的大小及其相对于视口的位置,具体如下所示:

top: 元素上边距离页面上边的距离left: 元素右边距离页面左边的距离right: 元素右边距离页面左边的距离bottom: 元素下边距离页面上边的距离width: 元素宽度height: 元素高度

mouseOffsetX 获取鼠标偏移量。在事件处理函数中,首先获取了容器元素相对于视口的位置(containerRect.left;)和鼠标移动处到浏览器窗口的横距离(clientX)来计算鼠标偏移量。

imageCount 长图中图像的数量,示例图片中是15个图像

imageWidth 单个图片的宽度

index 当前显示的图像索引。containerRect.width / imageCount意思是将容器的宽度除以图像数量,从而得到每个图像的宽度。Math.floor(mouseOffsetX / (containerRect.width / imageCount))将鼠标偏移量除以每个图像的宽度,从而得到应该显示的图像的索引。

positionX 当前图像应该显示的位置。 currentIndex * imageWidth当前图像索引和单个图像宽度计算得出。

最后通过修改容器元素的 backgroundPosition 样式属性实现了背景图像的切换效果。

三、问题为什么background-size设置为6944.88px 260.433px? background-size 属性用于设置背景图像的大小。将长图分割成了 15 个等宽的部分,每个部分都代表了不同的状态或者场景。background-size属性被设置为 6944.88px 260.433px,意味着图像被缩放成了水平方向的 6944.88px 和垂直方向的 260.433px。这个值的计算方法是将单个图像的宽度(462.99px)乘以图像的数量(15)得到的。 因此,background-size 属性的值被设置为 6944.88px 260.433px,使得图像在容器内能够按照原本的宽高比例进行缩放,同时也确保了每个图像都能够完整地显示在容器中。
本文链接地址:https://www.jiuchutong.com/zhishi/297473.html 转载请保留说明!

上一篇:【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一(2023年第十一批专项债)

下一篇:深度学习的通道到底是什么?有什么用?(小白可看)

  • 如何策划网络推广方案,网络推广快捷实现传播目的(如何策划网络推广活动)

    如何策划网络推广方案,网络推广快捷实现传播目的(如何策划网络推广活动)

  • 华为watchfitnew有gps吗(华为watchfitnew有独立GPS吗)

    华为watchfitnew有gps吗(华为watchfitnew有独立GPS吗)

  • 电子发票手动导出成功了,在哪里找(电子发票手动导出PDF)

    电子发票手动导出成功了,在哪里找(电子发票手动导出PDF)

  • 身份证实名认证次数已超限(身份证实名认证api)

    身份证实名认证次数已超限(身份证实名认证api)

  • unlocker怎么使用(unlockrd)

    unlocker怎么使用(unlockrd)

  • 查找朋友定位会出错吗(查找朋友定位准确吗)

    查找朋友定位会出错吗(查找朋友定位准确吗)

  • 热点会查到手机位置吗(热点会查到手机号码吗)

    热点会查到手机位置吗(热点会查到手机号码吗)

  • 微信聊天怎么隐藏某个人的聊天记录(微信聊天怎么隐藏正在输入状态)

    微信聊天怎么隐藏某个人的聊天记录(微信聊天怎么隐藏正在输入状态)

  • 手机nfc功能突然不能用了(手机nfc功能突然读取不了卡)

    手机nfc功能突然不能用了(手机nfc功能突然读取不了卡)

  • 快手双击有什么用(快手上的双击可以挣钱吗?)

    快手双击有什么用(快手上的双击可以挣钱吗?)

  • 相机运行异常怎么修复(相机功能异常)

    相机运行异常怎么修复(相机功能异常)

  • 如何在淘宝购买陌陌号(怎么在淘宝上架商品)

    如何在淘宝购买陌陌号(怎么在淘宝上架商品)

  • 移动网络不好(移动网络不好使打哪个电话投诉)

    移动网络不好(移动网络不好使打哪个电话投诉)

  • 快手店铺订单为什么什么都看不到(快手里小店订单怎么什么都不显示了)

    快手店铺订单为什么什么都看不到(快手里小店订单怎么什么都不显示了)

  • google docs属于云服务的哪一类型(google云文档)

    google docs属于云服务的哪一类型(google云文档)

  • internet上的域名和ip地址之间的关系是(internet中的域名呈什么结构?)

    internet上的域名和ip地址之间的关系是(internet中的域名呈什么结构?)

  • wps如何取消字体加粗(wps如何取消字体间距)

    wps如何取消字体加粗(wps如何取消字体间距)

  • soul拉黑了怎么加回来(soul拉黑了怎么分享名片)

    soul拉黑了怎么加回来(soul拉黑了怎么分享名片)

  • 为啥苹果11连不上蓝牙耳机(为啥苹果11连不上大疆无人机)

    为啥苹果11连不上蓝牙耳机(为啥苹果11连不上大疆无人机)

  • 华为cbg是什么的缩写(华为cbg英文全称)

    华为cbg是什么的缩写(华为cbg英文全称)

  • token已过期怎么办(token过期怎么处理前端)

    token已过期怎么办(token过期怎么处理前端)

  • vivoy70带指纹解锁吗(vivoy70s手机指纹解锁在哪里)

    vivoy70带指纹解锁吗(vivoy70s手机指纹解锁在哪里)

  • oppo手机后置摄像头模糊怎么回事(oppo手机后置摄像头模糊怎么办)

    oppo手机后置摄像头模糊怎么回事(oppo手机后置摄像头模糊怎么办)

  • HBuilderX uni-app简单实现静态登录页面(实例)

    HBuilderX uni-app简单实现静态登录页面(实例)

  • 即将2023年了,我好想念那些2022年离职的兄弟(到2023年)

    即将2023年了,我好想念那些2022年离职的兄弟(到2023年)

  • 应交税费是什么科目借贷方向
  • 计算应纳税所得额时 不得扣除支出有哪些
  • 现金流量表存货增加是负的
  • 金税盘的发票怎么作废
  • 冲红退税流程
  • 个体户核定5万每个月要交多少税钱
  • 增值税抵扣凭证装订要求
  • 工伤事故赔偿项目表
  • 对方公司开发票我方未付款如何做分录?
  • 异地预缴增值税后本地怎么申报
  • 管理费用对所得收入影响
  • 支付专家劳务费什么意思
  • 预收房款缴所得税会计分录怎么写?
  • 残疾人收到房租租赁发票收入还要缴纳个税吗
  • 营改增后物业管理公司需要交营业税吗
  • 混营纳税人怎么申报
  • 活动策划费属于哪一类
  • 资产负债表和利润表在哪里查
  • 购货未能取得发票怎么办
  • 外派人员补助标准
  • 上级拨入资金计入什么科目
  • window10永久
  • 速动比率计算公式多少合适
  • 招待费报销制度规定
  • 固定资产入账价值计算公式
  • 营改增之前的建筑业税率是多少
  • 安卓系统详解
  • 多源传感器融合
  • 企业退货产生的损失谁承担
  • node启动本地服务
  • php5 mysql教程
  • 账本过次页的视频
  • nginx安装配置视频
  • Yii2中使用asset压缩js,css文件的方法
  • 税负率怎么计算举例子
  • 所得税申报表上的营业成本怎么填
  • 母公司可以免子女税吗
  • 拍卖收入个人所得税
  • 进口消费税应该记到什么科目
  • mysql命令列界面
  • 稳岗补贴属于是什么补贴
  • 销货退回的账务如何处理
  • 物业公司代收水费合理吗
  • 内部损益是什么
  • 定金与订金不同
  • 已认证发票退回的流程
  • 一般纳税人在外地预缴税款,预缴多了需不需退税
  • 不是公司的车费用能走公司吗
  • 公司往来借款怎么做账
  • 快递费专票可以报销吗
  • 购房发票可以开专票
  • 开票信息中电话怎么填
  • 已经支付的预付款 银行能更改为货到付款吗
  • 重新计量设定受益计划变动额计入
  • 会计循环属于什么流程
  • php中常用的几个字符
  • MySQL下载安装视频
  • win7打开控制面板快捷键
  • win73d设置怎么设置
  • win10系统开机蓝屏怎么修复
  • 24个方法
  • linux防火墙命令大全
  • win7系统怎么把c盘的内存加到d盘
  • linux系统如何安装软件包
  • android开发环境安装步骤
  • 分享一下什么
  • cmd更改文件属性
  • django forloop
  • shell脚本批量添加10个用户
  • python编码大全
  • jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
  • 基于jQuery的ajax方法封装
  • python写一个复制文件的程序
  • JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
  • jquery事件委托原理
  • 怎么知道税控盘有没有注销
  • 买楼送地下室划算吗
  • 报纸的增值税税目是什么
  • acfunp
  • 销售土地使用权的税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设