当前位置: 首页 > news >正文

宣城网站建设上位机软件开发教程

宣城网站建设,上位机软件开发教程,公司企业网站维护,免费网页软件1、通过js创建<image?>标签来获取背景图片的宽高比&#xff1b; 2、当元素的高度大于原有比例计算出来的高度时&#xff0c;背景图片的高度拉伸自适应100%&#xff0c;否则高度为auto&#xff0c;会自动被裁减 3、背景图片容器高度变化时&#xff0c;自动计算背景图片的…

1、通过js创建<image?>标签来获取背景图片的宽高比;
2、当元素的高度大于原有比例计算出来的高度时,背景图片的高度拉伸自适应100%,否则高度为auto,会自动被裁减
3、背景图片容器高度变化时,自动计算背景图片的高度
在这里插入图片描述

const setBackgroundImageHeight = (element) => { //todo 设置背景图片的高度const getWidthNum = (width) => width ? width.slice(0, -2) : width; //todo 手动截掉宽度的px后缀const img = new Image();const { height, width, backgroundImage } = getComputedStyle(element); //? 获取到该元素的宽高img.src = backgroundImage.replace(/^url\(["']?/, '').replace(/["']?\)$/, '');img.onload = function() {var aspectRatio = img.width / img.height; //? 获取该背景图片的宽高比const backgroundImageHeight = getWidthNum(height) > (getWidthNum(width)/aspectRatio) ? '100%' : 'auto'; //* 当元素的高度大于原有比例计算出来的高度时,背景图片的高度拉伸自适应100%element.style.backgroundSize = `100% ${backgroundImageHeight}`;console.log('%c 🍎 张浩雨: img.onload -> element.style.backgroundSize ', 'font-size:16px;background-color:#ea00ea;color:white;', element.style.backgroundSize)};
}
const imageHeightOnChange = (element) => { //todo 背景图片容器高度变化时,自动计算背景图片的高度// 创建一个观察者对象const observer = new MutationObserver((mutationsList, observe) => {for(let mutation of mutationsList) {if (mutation.attributeName === 'style') {const style = mutation.target.getAttribute('style');if (style.includes('height')) {setBackgroundImageHeight(element)}}}});// 传入目标节点和观察目标节点的属性变动observer.observe(element, {attributes: true,attributeOldValue: true,attributeFilter: ['style']});return observer
}var imgBox = document.getElementById('img_box');
imageHeightOnChange(imgBox)

案例讲解

1、初始化时的默认宽高;
在这里插入图片描述
2、背景图片的宽高;
在这里插入图片描述
3、执行上面的代码,并执行imgBox.setAttribute(‘style’, ‘height: 380px’),此时高度小于图片的宽高比计算出来的高度,图片高度被裁减;
在这里插入图片描述
4、执行imgBox.setAttribute(‘style’, ‘height: 580px’),此时高度大于图片的宽高比计算出来的高度,图片高度被拉伸100%;

在这里插入图片描述
5、当执行imgBox.setAttribute(‘style’, ‘height: 480px’),此时高度等于图片的宽高比计算出来的高度,图片高度正常展示;
在这里插入图片描述

http://www.yayakq.cn/news/646470/

相关文章:

  • 洛阳市城市建设网站从事网站开发方向
  • 做微商网站公司网站建设平台招商
  • python可以做网站前端温州网站建设案例
  • 太原模板建站系统广东建设网 四川是什么网站
  • 网站h标签wordpress带微信二维码
  • 网站js代码不显示wordpress code插件
  • 虚拟服务器怎样做网站wordpress添加一个论坛
  • 长沙做网站哪里好上海有哪些互联网大厂
  • 如何线下宣传网站自己做网站要会什么
  • 上海网站建设与设计公司济南建设网站的公司哪家好
  • 网站架构图怎么做wordpress会员功能主题
  • 网站当前链接cms 网站模板
  • 嘉兴seo网站优化湖北创研楚商网站建设销售人员
  • 湖北营销网站建设联系方式做影视网站有什么风险
  • 海原网站建设天河网站建设系统
  • 企业微信手机片网站制作wordpress单页导航
  • 程序员做笔记的网站成都网站建设公司兴田德润在哪儿
  • 问答网站建设怎么提问有哪些程序网站
  • 四会网站建设做深度报道的网站
  • 沈阳企业网站制作公司黑马程序员培训价格表
  • 网站建设发展方向及前景展望wordpress设置角色
  • 中国有多少网站有多少域名网站模板怎么修改
  • 网站建设找伟杨科技郏县网站制作公司
  • 镇江网站制作费用ai做网站步骤
  • 宿州企业网站建设东莞回收网站设计
  • 北京建设安全协会网站北京公司网站建设公司
  • php用什么做网站服务器网络协议分析课程设计报告
  • 邯郸网站优化怎么用wordpress 格局调整
  • 七彩建设发展有限公司官方网站中国招标网官网招标公告
  • dedecms 手机网站模板c 语言可以做网站吗