MVC开发Markdown编辑器(2)
MVC开发Markdown编辑器(2)
MVC Markdown
实时预览
我希望实现一个在线实时预览的Markdown编辑器,左边是编辑处,右边是实时预览界面。
准备工作
引入相关js和css
- 这里我需要引入bootstrap的css 用来做基本的布局
- jquery以及之前提到过的mdd的js和css
<link href="~/Scripts/mdd_styles.css" rel="stylesheet" /><script src="~/Scripts/jquery-1.10.2.min.js"></script><script src="~/Scripts/MarkdownDeepLib.min.js"></script>
由于bootstrap默认在Layout中已经引入,这里就不需要引入了
View代码
<div id="markdownDiv" class="row"><div id="editDiv" class="mdd_modal_frame mdd_editor_wrap col-lg-6">@Html.TextArea("OrignalText", new { @class = "mdd_modal_content mdd_editor textarea" })</div><div id="renderDiv" class="mdd_modal_frame col-lg-6 "><div id="renderContent" class="mdd_modal_content"></div></div></div>
这里结构很简单最外层一个div 里面2个div一个显示在左,一个显示在右,
因此最外层Div我们设置Class为row让它占满整行,里面两个div都设置为col-lg-6,这样基本的布局就出来了,同时再添加mdd_modal_frame到里面2个子div,这个样式是在mdd_styles.css写好的,它是的div有基本的外框样式
JavaScript代码
function markdown(content) {//Set required options:// Set optionsmd.ExtraMode = true;md.SafeMode = true;md.MarkdownInHtml = true;//Transform your text:var output = md.Transform(content);return output;};function Transform() {var content = $("#OrignalText").val();var html = markdown(content);$("#renderContent").html(html);}
通过
Transform函数找到需要解析的文本框,将其内容解析并添加到renderContentdiv中
var enterOrignal = false;//鼠标是否在OrigbanText的上var enterRender = false;//鼠标是否在RenderText的上$(function() {$("#OrignalText").click(function() {this.focus();});//本文点击是获取焦点$("#OrignalText").keyup(Transform);$("#OrignalText").scroll(function () {if (enterOrignal){//只有进入OrignalText了才滚动renderContent,var height = ($("#renderContent").height() * 1.0 / $("#OrignalText").height()) * $("#OrignalText").scrollTop();$("#renderContent").scrollTop(height);}});$("#renderContent").scroll(function () {if (enterRender){//只有进入renderContent了才滚动orignal,var height = ($("#OrignalText").height() * 1.0 / $("#renderContent").height()) * $("#renderContent").scrollTop();$("#OrignalText").scrollTop(height);}});$("#OrignalText").mouseenter(function () {enterOrignal = true;//鼠标进入则设置为true});$("#OrignalText").mouseleave(function () {enterOrignal = false;//鼠标离开则设置为false});$("#renderContent").mouseenter(function () {enterRender = true;});$("#renderContent").mouseleave(function () {enterRender = false;});});//滚动条同步滚动});
在页面加载时绑定事件

双向滚动就完成了
MVC开发Markdown编辑器(2)的更多相关文章
- MVC开发Markdown编辑器(1)
MVC markdown MVC开发Markdown编辑器(1) 前言 安装 解析 结束语 前言 想在近段时间通过mvc开发个人博客,编辑器希望是markdown风格的,这样写文字会很方便.首先先解决 ...
- 用nw.js开发markdown编辑器-已完成功能介绍
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/10/29/hexomd-introduction 文章目录 1. 功能列表 ...
- Markdown编辑器开发记录(二):Markdown编辑器的使用与开发入门
Markdown编辑器的使用与开发入门 在部门做技术分享的时候简单整理了一下手里的资料 1 是什么 1.1 Markdown是一种轻量级标记语言 Markdown是一种轻量级标记语言,创始人为约翰·格 ...
- Markdown编辑器开发记录(一):开发的初衷和初期踩的坑
先说下选择Markdown编辑器的原因,我们进行平台开发,需要很多的操作手册和API文档,要在网站中展示出来就需要是HTML格式的文件,但是由于内容很多,不可能全部由技术人员进行文档的编写,如果是只有 ...
- 自己动手开发更好用的markdown编辑器-04(实时预览)
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/04/25/hexomd-04/ 程序打包 文章目录 1. 打开新窗口 ...
- 原创|我是如何从零学习开发一款跨平台桌面软件的(Markdown编辑器)
原始冲动 最近一直在学习 Electron 开发桌面应用程序,目的是想做一个桌面编辑器,虽然一直在使用Typore这款神器,但无奈Typore太过国际化,在国内水土不服,无法满足我的一些需求. 比如实 ...
- 我是如何从零学习开发一款跨平台桌面软件的(Markdown编辑器)
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 原始冲动 最近一 ...
- 自己动手开发更好用的markdown编辑器-07(扩展语法)
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/05/19/hexomd-07/ 文章目录 1. 准备工作 2. 目录语法 ...
- 好用的Markdown编辑器一览 readme.md 编辑查看
https://github.com/pandao/editor.md https://pandao.github.io/editor.md/examples/index.html Editor.md ...
随机推荐
- iPhone开发之UIScrollView初步
来源:http://blog.csdn.net/htttw/article/details/7891396 iPhone开发之UIScrollView初步 今天我们初步介绍以一下iPhone开发中的U ...
- chrome调试js工具的使用
Audits标签页 这个对于优化前端页面.加速网页加载速度很有用哦(相当与Yslow): 点击run按钮,就可以开始分析页面,分析完了就可以看到分析结果了: 它甚至可以分析出页面上样式表中有哪些CSS ...
- ubuntu 14.04 安装git server
版本信息 ubuntu : 14.04.1 git version 1.9.1 perl v5.10.1 ssh OpenSSH_6.6.1p1 本次安装的git server使用gitolite实现 ...
- [SQL]不知道
--COALESCE --返回其参数中第一个非空表达式. --语法 --COALESCE ( expression [ ,...n ] ) --参数 --expression --任何类型的表达式. ...
- C++primer 练习15.26
定义Quote和Bulk_Quote的拷贝控制成员,令其与合成的版本行为一致.为这些成员以及其他构造函数添加打印状态的 语句,使得我们能够知道正在运行哪个程序.使用这些类编写程序,预测程序将创建和销毁 ...
- 转载cocos2dx的各种动作用法
以下内容来源于:http://www.cnblogs.com/linux-ios/archive/2013/04/06/3001946.html 转载时请保留以上链接. bool HelloWorld ...
- win10 TortoiseSVN 部分图标不显示
原因:https://msdn.microsoft.com/en-us/library/cc144123(VS.85).aspx Note The number of different icon ...
- 一目了然c++虚基类!
#include <IOSTREAM.H> //基类 class CBase ...{ protected: int a; public: CBase(int na) ...{ a=na; ...
- 由多次使用Statement实例引起的Result set already closed异常的解决方案
在不同版本的Weblogic平台上迁移应用,产生了很严重的JDBC驱动版本不兼容的问题. 但是归根究底是代码的问题,废话少说,上代码示例. ..... //以下是问题代码 ResultSet rs=n ...
- 学习练习 java编写西游记人物类
package com.hanqi; public class XiYouJiRenWu { double height; String weapon; String name; void prine ...