图像的响应式空白图像叠加
Responsive blank image overlay for an image
我正在尝试找到一个javascript解决方案,它可以动态覆盖类似于David Walsh的dwImageProtector插件(http://davidwalsh.name/image-protector-plugin-for-jquery)的空白图像。我对那个插件的问题是,首先,它将叠加层附加到实际上与目标图像不对齐的"正文",其次,该插件不是为响应式而构建的,这意味着如果我调整浏览器的宽度,覆盖图像将保持与原始解析图像大小相同的方式。
我的代码看起来像这样:
//css
.column { position: relative }
.column img { width: 100%; }
// html
<div class='column'>
<img class='protect' src='img/source.jpg' />
<span>copyright 2013</span>
</div>
注意:覆盖技巧充其量只能阻止想要窃取您的图像的不熟悉的访问者。没有可行的方法来阻止盗窃,因为:
- 访问者可以从检查器检查图像源,并直接下载(但您可以使用阻止直接文件访问的.htaccess规则来规避它)
- 访问者可以隐藏图像叠加层
- 访问者可以截取页面的屏幕截图
- 访问者可以嗅探从服务器到浏览器 的文件
回到我的解决方案:你实际上不需要使用JavaScript(或jQuery)来实现这个目的。使用伪元素的简单CSS技巧将起作用。假设您有以下标记:
<div class='column'>
<div class='protect'>
<img src='img/source.jpg' />
</div>
<span>copyright 2013</span>
</div>
您的 CSS:
.protect {
position: relative;
}
.protect:after {
background-image: url(/path/to/overlay);
background-size: cover;
content: "";
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 10;
}
但是,如果您无法更改标记,那么您应该依靠使用 jQuery 将图像元素与 <div class="protect">
元素包装在一起,并应用与上述相同的样式,即
$("img").each(function() {
$(this).wrap('<div class="protect" />');
});
相关文章:
- 如何根据需要在传单上叠加光栅图像
- 如何将叠加图像添加到SIMILE Exhibit地图视图中
- 将图像叠加在图像上
- 如何在图像上叠加忙图标
- 将三个图像相互叠加
- 图像悬停时的文本叠加 - 响应式
- 如何使用BEML或JS在全屏Brightcove智能播放器中添加图像叠加
- 使用 JavaScript 将图像叠加到另一个图像上
- 在 U 管视频上叠加图像在 I-pod/I-phone 设备上不可点击
- 图像的响应式空白图像叠加
- 传单不会将本地图像显示为叠加
- 图像叠加闪烁
- Javascript图像叠加在IE中不起作用
- 触发带有图像叠加的Flash按钮
- 图像叠加,你可以点击通过
- 如何在亚马逊 lambda 函数中使用 node.js 进行图像叠加和水印
- JWplayer 6 和图像叠加视频的奇怪问题
- 谷歌地图图像叠加和多色标记 - 如何组合代码
- 图像叠加 jQuery - 获取图像以保持点击
- 将一个透明图像叠加到另一个透明图像上