first commit
This commit is contained in:
86
lib/tiny_mce/custom_plugins/stickytoolbar/plugin.js
vendored
Normal file
86
lib/tiny_mce/custom_plugins/stickytoolbar/plugin.js
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
/**
|
||||
* Adapted from https://github.com/kurtnovack/stickytoolbar
|
||||
*/
|
||||
tinymce.PluginManager.add('stickytoolbar', function(editor, url) {
|
||||
var offset = editor.settings.sticky_offset ? editor.settings.sticky_offset : 0;
|
||||
|
||||
editor.on('init', function() {
|
||||
editor.setSticky();
|
||||
});
|
||||
|
||||
$(window).on('scroll', function() {
|
||||
editor.setSticky();
|
||||
});
|
||||
|
||||
editor.setSticky = function () {
|
||||
offset = editor.settings.sticky_offset ? editor.settings.sticky_offset : 0;
|
||||
var container = editor.editorContainer;
|
||||
var toolbars = $(container).find('.mce-toolbar-grp');
|
||||
var statusbar = $(container).find('.mce-statusbar');
|
||||
|
||||
if (editor.isSticky()) {
|
||||
$(container).css({
|
||||
paddingTop: toolbars.outerHeight()
|
||||
});
|
||||
|
||||
if (editor.isAtBottom()) {
|
||||
toolbars.css({
|
||||
top: 'auto',
|
||||
bottom: statusbar.outerHeight(),
|
||||
position: 'absolute',
|
||||
width: '100%',
|
||||
borderBottom: 'none'
|
||||
});
|
||||
} else {
|
||||
toolbars.css({
|
||||
top: offset,
|
||||
bottom: 'auto',
|
||||
position: 'fixed',
|
||||
width: $(container).width(),
|
||||
borderBottom: '1px solid rgba(0,0,0,0.2)'
|
||||
});
|
||||
}
|
||||
} else {
|
||||
$(container).css({
|
||||
paddingTop: 0
|
||||
});
|
||||
|
||||
toolbars.css({
|
||||
top: 0,
|
||||
position: 'relative',
|
||||
width: 'auto',
|
||||
borderBottom: 'none'
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
editor.isSticky = function () {
|
||||
var container = editor.editorContainer,
|
||||
editorTop = container.getBoundingClientRect().top;
|
||||
|
||||
if (editorTop < offset) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
editor.isAtBottom = function () {
|
||||
const container = editor.getContainer();
|
||||
|
||||
const editorPosition = container.getBoundingClientRect().top,
|
||||
statusbar = container.querySelector('.mce-statusbar'),
|
||||
topPart = container.querySelector('.mce-top-part');
|
||||
|
||||
const statusbarHeight = statusbar ? statusbar.offsetHeight : 0,
|
||||
topPartHeight = topPart ? topPart.offsetHeight : 0;
|
||||
|
||||
const stickyHeight = -(container.offsetHeight - topPartHeight - statusbarHeight);
|
||||
|
||||
if (editorPosition < stickyHeight + offset) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
});
|
||||
1
lib/tiny_mce/custom_plugins/stickytoolbar/plugin.min.js
vendored
Normal file
1
lib/tiny_mce/custom_plugins/stickytoolbar/plugin.min.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
tinymce.PluginManager.add("stickytoolbar",(function(t,o){var e=t.settings.sticky_offset?t.settings.sticky_offset:0;t.on("init",(function(){t.setSticky()}));$(window).on("scroll",(function(){t.setSticky()}));t.setSticky=function(){e=t.settings.sticky_offset?t.settings.sticky_offset:0;var o=t.editorContainer;var i=$(o).find(".mce-toolbar-grp");var s=$(o).find(".mce-statusbar");if(t.isSticky()){$(o).css({paddingTop:i.outerHeight()});if(t.isAtBottom()){i.css({top:"auto",bottom:s.outerHeight(),position:"absolute",width:"100%",borderBottom:"none"})}else{i.css({top:e,bottom:"auto",position:"fixed",width:$(o).width(),borderBottom:"1px solid rgba(0,0,0,0.2)"})}}else{$(o).css({paddingTop:0});i.css({top:0,position:"relative",width:"auto",borderBottom:"none"})}};t.isSticky=function(){var o=t.editorContainer,i=o.getBoundingClientRect().top;if(i<e){return true}return false};t.isAtBottom=function(){const o=t.getContainer();const i=o.getBoundingClientRect().top,s=o.querySelector(".mce-statusbar"),n=o.querySelector(".mce-top-part");const r=s?s.offsetHeight:0,c=n?n.offsetHeight:0;const f=-(o.offsetHeight-c-r);if(i<f+e){return true}return false}}));
|
||||
Reference in New Issue
Block a user