热点在全屏背景与背景位置:中心
hotspots on full-screen backgrounds with background-position: center
我最近遇到了一个问题,当我试图将热点定位在全屏背景图像的顶部时,焦点在图像的中心(我研究了使用带有图像映射的内联图像,但不幸的是,由于网站的创作环境,这将不起作用)。
虽然我成功地将热点放入DOM中,并且当图像渲染比例与原始文件尺寸匹配时,它们会正确地定位自己,但当图像开始缩放并裁剪自己以适合它的容器时,热点会失去它们的定位。
我目前有热点定位自己的百分比,但我不确定这是最好的方法,或者也许使用像素代替。
主要问题出现在第46行&当尝试基于比率计算每个热点的x和y偏移量时。
if (windowAspectRatio > imageAspectRatio) {
//yOffset = yPos - (yPos / (imageAspectRatio / windowAspectRatio));
xOffset = 0;
} else {
//xOffset = xPos - (xPos / (imageAspectRatio / windowAspectRatio));
yOffset = 0;
}
当前进度可在此查看:https://jsfiddle.net/k35opLvd/
-注意,标记和样式必须保持原样,以及图像大小
由于图像从中心缩放,我们还需要从中心缩放热点:
http://codepen.io/agrayson/pen/vObLmZ?编辑= 001
if (windowAspectRatio > imageAspectRatio) {
yPos = (yPos / imageHeight) * 100;
xPos = (xPos / imageWidth) * 100;
} else {
yPos = ((yPos / (windowAspectRatio / imageAspectRatio)) / imageHeight) * 100;
xPos = ((xPos / (windowAspectRatio / imageAspectRatio)) / imageWidth) * 100;
}
相关文章:
- jQuery-仅更改Y轴的CSS背景位置
- 仅为背景位置X轴制作动画
- 如何将CSS背景位置属性从百分比转换为像素
- 使用 jQuery 限制滚动时的垂直背景位置
- 视差/背景位置的特征检测
- 根据背景位置更改光标 URL
- 精灵图像的背景位置在 IE 中不起作用,用于倒计时时钟
- 如何在背景图像到达底部时停止背景位置更改
- IE10 背景位置 x 的解决方法
- 根据当前背景位置更改背景位置
- 在 Javascript 中获取 posX 和 posY 的背景位置
- 通过 javascript 通过增量修改 CSS 背景位置
- 用于更改背景位置的动态变量
- 背景位置:固定
- 滚动到页面底部时更改背景位置
- 更改其背景位置时,背景图像消失
- 使用 jquery 或 javaScript 更改背景位置的值
- 使用 jQuery 设置背景位置
- 根据鼠标移动将背景位置 x px 向左/向右移动(从背景位置:中心开始)
- 使用Javascript设置图像的背景位置