博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在网站 Logo 上右击时提示下载网站的 Logo 素材下载
阅读量:6264 次
发布时间:2019-06-22

本文共 2037 字,大约阅读时间需要 6 分钟。

本文讲的是在网站 Logo 上右击时提示下载网站的 Logo 素材下载,

有一天我在访问  网站时,突然想要抓取他们网站的 logo。如果运气好的话(例如你非常开心地发现他们 logo 的 SVG 文件),有时候你不需要去 Google 图片搜索,也不用普通网页搜索关键词 “Invision Logo”找到一些品牌介绍页面之类网页,才可以下载 logo 图片。

因此我右击了他们的 logo,希望可以通过”查看元素”从开发者工具(DevTools)中找到它的图片文件。

然而并没有出现右键菜单,而是触发了一个对话框:

我感到非常惊喜,因为这正是我想要的。

下面是一个简单的无依赖的实现方法

看这个来自 Chris Coyier( 的示例 )。

<iframe height="268" scrolling="no" src="//codepen.io/chriscoyier/embed/QNyeVd/?height=268&theme-id=0&default-tab=result" frameborder="no" allowtransparency="true" allowfullscreen="true" style="width: 100%;">See the Pen <a href="
 Click Logo to Show Logo Options</a> by Chris Coyier (<a href="
) on <a href="
>

你的应用可能已经有一整套精致的系统来展示对话框了。如果是这样,那就更简单了。为 logo 绑定“右击”事件(准确来说是contextmenu)并加入你想完成的操作。

logo.addEventListener('contextmenu', function(event) {  // do whatever you do to show a modal}, false);

如果你当前没有实现对话框的系统,也很容易实现一个简单的版本。你需要一个浮层和一个对话框元素:

还有一个计划表:

  1. 右击 logo 时,显示浮层和对话框
  2. 点击关闭按钮时,隐藏它们

没问题:

var logo = document.querySelector("#logo");var button = document.querySelector("#close-modal-button");var overlay = document.querySelector("#overlay");var modal = document.querySelector("#modal");logo.addEventListener('contextmenu', function(event) {  event.preventDefault();  overlay.classList.add("show");  modal.classList.add("show");}, false);button.addEventListener('click', function(event) {  event.preventDefault();  overlay.classList.remove("show");  modal.classList.remove("show");}, false);

基本样式:

.overlay {  position: fixed;  background: rgba(0, 0, 0, 0.75);  top: 0;  left: 0;  width: 100%;  height: 100%;  display: none;}.overlay.show {  display: block;}.modal {  position: fixed;  left: 50%;  width: 300px;  margin-left: -150px;  top: 100px;  background: white;  padding: 20px;  text-align: center;  display: none;}.modal.show {  display: block;}.modal > h3 {  font-size: 26px;  color: #900;}

永远不要用你自己自定义的行为破坏原有的右键菜单,我的天,你这个根本就不应该存在的恶魔

原文发布时间为:2016年04月20日
本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。

转载地址:http://mgkpa.baihongyu.com/

你可能感兴趣的文章
这其实是一个求助的文章
查看>>
你必须掌握的 RESTful 后端接口设计参考书
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
兼容iOS 10:配置获取隐私数据权限声明
查看>>
Docker 使用笔记
查看>>
jest && vue
查看>>
前端每周清单第 36 期:深入 Vue 2.5 类型增强、Puppeteer 端到端测试、PayPal 跨域套装...
查看>>
iOS - Swift 面向协议编程(二)
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
原生js轮盘抽奖实例分析(幸运大转盘抽奖)
查看>>
知否?知否?情人眼里出代码
查看>>
DataBinding数据绑定基本讲解
查看>>
15 分钟无门槛构建服务器性能监控系统
查看>>
【JS第19期】设计模式-简单工厂模式
查看>>
Flask之旅: 快速上手
查看>>
Android图片加载开源库深度推荐,安利Fresco
查看>>
聊聊flink的MemoryPool
查看>>
聊聊flink KeyedStream的KeySelector
查看>>
spring mvc如何计算BEST_MATCHING_PATTERN_ATTRIBUTE
查看>>
swift 消息监听和键值监听(kvo)
查看>>