Vue press 支持图片放大功能的实例代码


Posted in Javascript onNovember 09, 2018

介绍

VuePress 由两部分组成:一个以 Vue 驱动的主题系统的简约静态网站生成工具,和一个为编写技术文档而优化的默认主题。它是为了支持 Vue 子项目的文档需求而创建的。

由 VuePress 生成的每个页面,都具有相应的预渲染静态 HTML,它们能提供出色的加载性能,并且对 SEO 友好。然而,页面加载之后,Vue 就会将这些静态内容,接管为完整的单页面应用程序(SPA)。当用户在浏览站点时,可以按需加载其他页面。

前两天接触到了 Vuepress ,颜值很高,界面简洁,容易上手。于是打算把博客从 hexo 迁移过去。

但是发现图片是不能点击的。 Markdown 在渲染的时候连 a 标签都没有添加,不仅不能直接点,也不能放大。然而我的博客中是有很多大图的,所以这个功能是刚需。

我试了下最新版本 1.x alpha 还是没有这个功能。所以直接自己动手了。

由于我并不熟悉 vue ,所以从源代码上改比较困难。

最后我使用了 fancybox 库,并开发了一个辅助 VSCode 插件。

引入 fancybox

.vuepress/config.js 文件的 head 标签中可以直接添加 fancybox 的 cdn,由于它依赖 jquery,所以还要引入 jquery。

module.exports = {
 head: [
  // add jquert and fancybox
  ['script', { src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js' }],
  ['script', { src: 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.2/jquery.fancybox.min.js' }],
  ['link', { rel: 'stylesheet', type: 'text/css', href: 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.2/jquery.fancybox.min.css' }]
 ],
 themeConfig: {
  // your config
 }
}

然后修改图片的 markdown

![xx](sss)

将上面的这种格式修改为下面这种,手动添加 a 标签、 data-fancybox 和 href 属性即可。

<a data-fancybox title="xx" href="sss" rel="external nofollow" >![xx](sss)</a>

但是这样手动添加太麻烦了,并且想取消掉也不方便。

所以我写了一个 VSCode 插件,来批量格式化。

VScode 商店搜索 vuepress-img-format 安装即可。

Vue press 支持图片放大功能的实例代码

调用命令 img format 可以格式化当前文档的所有图片,img reset format 可以重置格式化,效果如下:

Vue press 支持图片放大功能的实例代码

当然也可以使用内置的快捷键:

快捷键 格式化 重置格式化
Windows/Linux Ctrl + Shift +8 Ctrl + Shift + 8
Mac Cmd + Shift + 8 Cmd + Shift + 9

格式完了之后就可以点击放大图片了。

Vue press 支持图片放大功能的实例代码

总结

以上所述是小编给大家介绍的Vue press 支持图片放大功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery 面包屑导航 具体实现
Jun 05 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
JavaScript小技巧整理
Dec 30 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
Aug 01 Javascript
vue.js移动端tab组件的封装实践实例
Jun 30 Javascript
详解vue express启动数据服务
Jul 05 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
解决VUEX的mapState/...mapState等取值问题
Jul 24 Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 jQuery
KOA+egg.js集成kafka消息队列的示例
Nov 09 #Javascript
详解关于element el-button使用$attrs的一个注意要点
Nov 09 #Javascript
webpack4.x CommonJS模块化浅析
Nov 09 #Javascript
angular4笔记系列之内置指令小结
Nov 09 #Javascript
node版本管理工具n包使用教程详解
Nov 09 #Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
Nov 08 #Javascript
vue.js层叠轮播效果的实例代码
Nov 08 #Javascript
You might like
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php数组合并的二种方法
2014/03/21 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php短信接口代码
2016/05/13 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
JS高级运动实例分析
2016/12/20 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
Python多继承顺序实例分析
2018/05/26 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python爬取淘宝商品销量信息
2018/11/16 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
迟到检讨书5000字
2014/01/31 职场文书
员工手册董事长致辞
2015/07/29 职场文书
班主任寄语2016
2015/12/04 职场文书