рддрд░реНрдХ:
рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЬрдм рдорд╛рдЙрд╕ рдХреЛ рдХрд╛рдлреА рджреВрд░ рддрдХ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдкрддрд▓реА рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд┐рдирд╛ рддреАрд░ рдХреЗ, рдСрдЯреЛрд╣рд╛рдЗрдбрд┐рдВрдЧ рдФрд░ рд╢реБрд░реБрдЖрддреА рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
#867 . рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд
рдХреЛрдбрдореИрдЬрд┐рдХ рдХреЗ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ:
::-webkit-scrollbar {
width: 0.5em;
}
::-webkit-scrollbar-track {
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}
::-webkit-scrollbar-thumb {
background: rgba(100, 100, 100, 0.8);
}
::-webkit-scrollbar-corner,
::-webkit-scrollbar-thumb:window-inactive {
background: rgba(100, 100, 100, 0.4);
}
рдпрд╣ рдЙрди рд╕рднреА рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЕрдм рддрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ (рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рднрд╛рдЧреЛрдВ рдХреЛ рд░рдВрдЧрддрд╛ рд╣реВрдВ)ред
рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ https://github.com/noraesae/perfect-scrollbar рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ
@whitelynx рдореИрдВ рд╕рд╣реА-рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдФрд░ рдЗрдХреНрдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред рдпрд╛ рддреБрдордиреЗ рдХреЛрд╢рд┐рд╢ рдХреА? рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдХреИрд╕реЗ?
рдЕрднреА рддрдХ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рдпреЛрдЬрдирд╛ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рд╣реИ рдЬреЛ ace.js
рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░рддреЗ рд╣реИрдВред
рдореВрд▓ рд░реВрдк рд╕реЗ, рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ DOM рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рд▓реЗ display: none
рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╕реНрдЯрдо рдЫреЛрдЯреЗ divs
рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдЬреЛ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╕рдорд╛рди рдКрдВрдЪрд╛рдИ рдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ div, рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░реА div рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрдХ рдХреА рд╕реНрдХреНрд░реЙрд▓ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░реЗрдВ)ред рдЗрд╕реЗ рд╕реАрдзреЗ рдРрд╕ рдХреЗ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдбреАрдУрдПрдо рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓рддреЗ рд╣реИрдВ (рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдЖрдорддреМрд░ рдкрд░ рдХрд░рддреЗ рд╣реИрдВ), рддреЛ рд╡реЗ рдЕрдм рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред
@whitelynx рдореИрдВ рд╕рд╣реА-рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдФрд░ рдЗрдХреНрдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред рдпрд╛ рддреБрдордиреЗ рдХреЛрд╢рд┐рд╢ рдХреА? рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рдХреИрд╕реЗ?
рд╣рд╛рдВ; рдЖрдк рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ https://github.com/whitelynx/web-pgq/blob/master/static/js/directives/editors рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдл рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)
@whitelynx рд▓рд┐рдВрдХ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдЕрджреНрдпрддрд┐рдд рд╕рдВрджрд░реНрдн рд╣реИ?
@whitelynx рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд▓рд┐рдВрдХ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЧрдпрд╛... рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: https://github.com/whitelynx/web-pgq/blob/master/static/js/directives/editor.js
рдХреНрдпрд╛ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХрд╛рдо рдХрд░рддреА рд╣реИ? рд▓рдВрдмрд╡рдд рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд╛рдкрд╕ рдХреВрдж рдЬрд╛рддрд╛ рд╣реИред
рдХреБрдЫ рд╕рдордп рдмрд╛рдж
рдареАрдХ рд╣реИ рдореИрдВ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░.рдЬреЗрдПрд╕ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдмрджрд▓рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:
/**
* Emitted when the scroll bar, well, scrolls.
* <strong i="9">@event</strong> scroll
* <strong i="10">@param</strong> {Object} e Contains one property, `"data"`, which indicates the current scroll left position
**/
this.onScroll = function() {
if (!this.skipEvent) {
// DO NOT FIRE THIS EVENT, THIS WILL NOT WORK WITH perfect-scrollbar
//this.scrollLeft = this.element.scrollLeft;
//this._emit("scroll", {data: this.scrollLeft});
}
this.skipEvent = false;
};
рдСрдирд╕реНрдХреНрд░реЙрд▓ рдиреЗ рд╕реНрдХреНрд░реЙрд▓рд▓реЗрдлреНрдЯ рдХреЛ рд╣рд░ рдмрд╛рд░ 0 рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдЬрдм рдореИрдВрдиреЗ рд╕реЗрдЯрд╕реНрдХреНрд░реЙрд▓ рд▓реЗрдлреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛рдпрд╛ рддреЛ рдпрд╣ рджреЛ рдмрд╛рд░ рдЯреВрдЯ рдЧрдпрд╛, рдПрдХ рдмрд╛рд░ рд╕рд╣реА рдорд╛рди рдХреЗ рд╕рд╛рде рдФрд░ рдПрдХ рдмрд╛рд░ 0 рдХреЗ рд╕рд╛рдеред рдмрд╛рдж рд╡рд╛рд▓рд╛ рдСрдирд╕реНрдХреНрд░реЙрд▓ рдХреЗ рдХрд╛рд░рдг рд╣реБрдЖред
@whitelynx рдХреНрдпрд╛ рдХреЛрдИ _live_ рдбреЗрдореЛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ?
@rocketinventor рдореИрдВрдиреЗ рд╡рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ @whitelynx рдиреЗ рджрд┐рдпрд╛ рдерд╛, рдСрдирд╕реНрдХреНрд░реЙрд▓ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ http://drake7707.github.io/Typescript-Editor/ рдкрд░ рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред
рдпрд╣ рд╡рд╣ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рд▓рдВрдмрд╡рдд рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдСрдирд╕реНрдХреНрд░реЙрд▓ рдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рднреА рдХреАрдмреЛрд░реНрдб рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рд╕реМрджрд╛ рдирд╣реАрдВ рд╣реИред
var scrollbars = $('.ace_scrollbar')
.css('overflow', 'hidden');
var scrollbarSettings = { suppressScrollX: true, includePadding: true, minScrollbarLength: 12 };
scrollbars.filter('.ace_scrollbar-v').perfectScrollbar(scrollbarSettings);
scrollbars.filter('.ace_scrollbar-h').perfectScrollbar(scrollbarSettings);
var editors = [editor, editorCSS, editorHTML, editorJavascript];
for (var i = 0; i < editors.length; i++) {
var e = editors[i];
e.$blockScrolling = Infinity;
var container = e.renderer.getContainerElement();
$(e).hover(
function () { scrollbars.addClass('hover'); },
function () { scrollbars.removeClass('hover'); }
);
var session = e.getSession();
session.on('change', function () {
scrollbars.perfectScrollbar('update');
});
}
$(window).resize(function () {
scrollbars.perfectScrollbar('update');
});
@ drake7707 рд╡рд╣ рдбреЗрдореЛ рдореЗрд░реЗ рд▓рд┐рдП рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рд▓рдВрдмрд╡рдд рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдИ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ?
@rocketinventor рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╢рд╛рдпрдж suppressScrollX: true
рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЕрдЧрд░ рдореИрдВ http://www.reseauacces.com/application/views/layouts/plugins/scrollbar/examples/options-suppressScrollAxis.html рдкрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рд▓рдВрдмрд╡рдд рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдЫреБрдкрд╛рдПрдЧрд╛ред
рд╣рд╛рдБ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░реЗрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ suppressScrollX: true
рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдСрдирд╕реНрдХреНрд░реЙрд▓ рджреЛ рдмрд╛рд░ рдЖрдЧ рд▓рдЧ рдЧрдпрд╛ рдФрд░ 0 рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕реЗ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рдСрдирд╕реНрдХреНрд░реЙрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рджреЛрдиреЛрдВ рд╕реНрдХреНрд░реЙрд▓ рджрд┐рд╢рд╛рдУрдВ рдХреЛ рджреЛрдиреЛрдВ рдкрд░ рджреГрд╢реНрдпрдорд╛рди рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реИред
@ рдбреНрд░реЗрдХ7707 рдпрд╣
рдмрд╕ рдпрд╣рд╛рдБ CSS рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдмрдирд╛рдП: https://github.com/ukandrewc/Ace-Scrollbars
рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╛рдЪреАрди рдореБрджреНрджреЗ рдХреЛ рдЯрдХреНрдХрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдУрд╡рд░рд▓реЗрд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░, рдпрд╛ рд╢рд╛рдпрдж рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрдХ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреЛрдбрдореИрдЬрд┐рдХ рдХреЗ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ:
рдпрд╣ рдЙрди рд╕рднреА рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЕрдм рддрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ (рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рд╕реНрдХреНрд░реЙрд▓рдмрд╛рд░ рднрд╛рдЧреЛрдВ рдХреЛ рд░рдВрдЧрддрд╛ рд╣реВрдВ)ред