first commit
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
.rsssl-ss-wrapper {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.rsssl-ss-content {
|
||||
height: 100%;
|
||||
width: calc(100% + 18px);
|
||||
padding: 0 0 0 0;
|
||||
position: relative;
|
||||
overflow-x: auto;
|
||||
overflow-y: scroll;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.rsssl-ss-content.rtl {
|
||||
width: calc(100% + 18px);
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.ss-scroll {
|
||||
position: relative;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
width: 9px;
|
||||
border-radius: 4px;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
cursor: pointer;
|
||||
opacity: 0;
|
||||
transition: opacity 0.25s linear;
|
||||
}
|
||||
|
||||
.ss-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ss-container:hover .ss-scroll,
|
||||
.ss-container:active .ss-scroll {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.ss-grabbed {
|
||||
-ms-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
;(function(root, factory) {
|
||||
if (typeof exports === 'object') {
|
||||
module.exports = factory(window, document)
|
||||
} else {
|
||||
root.SimpleScrollbar = factory(window, document)
|
||||
}
|
||||
})(this, function(w, d) {
|
||||
var raf = w.requestAnimationFrame || w.setImmediate || function(c) { return setTimeout(c, 0); };
|
||||
|
||||
function initEl(el) {
|
||||
Object.defineProperty(el, 'data-simple-scrollbar', { value: new SimpleScrollbar(el), configurable: true });
|
||||
}
|
||||
|
||||
function unbindEl(el) {
|
||||
if (!Object.prototype.hasOwnProperty.call(el, 'data-simple-scrollbar')) return;
|
||||
el['data-simple-scrollbar'].unBind();
|
||||
//Remove the elements property
|
||||
delete el['data-simple-scrollbar'];
|
||||
}
|
||||
|
||||
// Mouse drag handler
|
||||
function dragDealer(el, context) {
|
||||
var lastPageY;
|
||||
|
||||
el.addEventListener('mousedown', function(e) {
|
||||
lastPageY = e.pageY;
|
||||
el.classList.add('ss-grabbed');
|
||||
d.body.classList.add('ss-grabbed');
|
||||
|
||||
d.addEventListener('mousemove', drag);
|
||||
d.addEventListener('mouseup', stop);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
function drag(e) {
|
||||
var delta = e.pageY - lastPageY;
|
||||
lastPageY = e.pageY;
|
||||
|
||||
raf(function() {
|
||||
context.el.scrollTop += delta / context.scrollRatio;
|
||||
});
|
||||
}
|
||||
|
||||
function stop() {
|
||||
el.classList.remove('ss-grabbed');
|
||||
d.body.classList.remove('ss-grabbed');
|
||||
d.removeEventListener('mousemove', drag);
|
||||
d.removeEventListener('mouseup', stop);
|
||||
}
|
||||
}
|
||||
|
||||
// Constructor
|
||||
function ss(el) {
|
||||
this.target = el;
|
||||
this.content = el.firstElementChild;
|
||||
|
||||
this.direction = w.getComputedStyle(this.target).direction;
|
||||
|
||||
this.bar = '<div class="ss-scroll">';
|
||||
//Create a reference to the function binding to remove the event listeners
|
||||
this.mB = this.moveBar.bind(this);
|
||||
|
||||
this.wrapper = d.createElement('div');
|
||||
this.wrapper.setAttribute('class', 'rsssl-ss-wrapper');
|
||||
|
||||
this.el = d.createElement('div');
|
||||
this.el.setAttribute('class', 'rsssl-ss-content');
|
||||
|
||||
if (this.direction === 'rtl') {
|
||||
this.el.classList.add('rtl');
|
||||
}
|
||||
|
||||
this.wrapper.appendChild(this.el);
|
||||
|
||||
while (this.target.firstChild) {
|
||||
this.el.appendChild(this.target.firstChild);
|
||||
}
|
||||
this.target.appendChild(this.wrapper);
|
||||
|
||||
this.target.insertAdjacentHTML('beforeend', this.bar);
|
||||
this.bar = this.target.lastChild;
|
||||
|
||||
dragDealer(this.bar, this);
|
||||
this.moveBar();
|
||||
|
||||
w.addEventListener('resize', this.mB);
|
||||
this.el.addEventListener('scroll', this.mB);
|
||||
this.el.addEventListener('mouseenter', this.mB);
|
||||
|
||||
this.target.classList.add('ss-container');
|
||||
|
||||
var css = w.getComputedStyle(el);
|
||||
if (css['height'] === '0px' && css['max-height'] !== '0px') {
|
||||
el.style.height = css['max-height'];
|
||||
}
|
||||
|
||||
this.unBind = function() {
|
||||
//Remove event listeners
|
||||
w.removeEventListener('resize', this.mB);
|
||||
this.el.removeEventListener('scroll', this.mB);
|
||||
this.el.removeEventListener('mouseenter', this.mB);
|
||||
|
||||
this.target.classList.remove('ss-container');
|
||||
|
||||
//Unwrap the initial content and remove remaining wrappers
|
||||
this.target.insertBefore(this.content, this.wrapper);
|
||||
this.target.removeChild(this.wrapper);
|
||||
|
||||
//Remove the bar including its drag-dealer event listener
|
||||
this.target.removeChild(this.bar);
|
||||
this.bar = null; //make way for the garbage collector
|
||||
}
|
||||
}
|
||||
|
||||
ss.prototype = {
|
||||
moveBar: function(e) {
|
||||
var totalHeight = this.el.scrollHeight,
|
||||
ownHeight = this.el.clientHeight,
|
||||
_this = this;
|
||||
|
||||
this.scrollRatio = ownHeight / totalHeight;
|
||||
|
||||
var isRtl = _this.direction === 'rtl';
|
||||
var right = isRtl ?
|
||||
(_this.target.clientWidth - _this.bar.clientWidth + 18) :
|
||||
(_this.target.clientWidth - _this.bar.clientWidth) * -1;
|
||||
|
||||
raf(function() {
|
||||
// Hide scrollbar if no scrolling is possible
|
||||
if(_this.scrollRatio >= 1) {
|
||||
_this.bar.classList.add('ss-hidden')
|
||||
} else {
|
||||
_this.bar.classList.remove('ss-hidden')
|
||||
_this.bar.style.cssText = 'height:' + Math.max(_this.scrollRatio * 100, 10) + '%; top:' + (_this.el.scrollTop / totalHeight ) * 100 + '%;right:' + right + 'px;';
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function initAll() {
|
||||
var nodes = d.querySelectorAll('.rsssl-scroll-container');
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
initEl(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function unbindAll() {
|
||||
var nodes = d.querySelectorAll('.ss-container');
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
unbindEl(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
d.addEventListener('DOMContentLoaded', initAll);
|
||||
ss.initEl = initEl;
|
||||
ss.initAll = initAll;
|
||||
ss.unbindEl = unbindEl;
|
||||
ss.unbindAll = unbindAll;
|
||||
|
||||
var SimpleScrollbar = ss;
|
||||
return SimpleScrollbar;
|
||||
});
|
||||
1
wp-content/plugins/really-simple-ssl/includes/simple-scrollbar.min.css
vendored
Normal file
1
wp-content/plugins/really-simple-ssl/includes/simple-scrollbar.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.rsssl-ss-wrapper{overflow:hidden;width:100%;height:100%;position:relative;z-index:1;float:left}.rsssl-ss-content{height:100%;width:calc(100%+18px);padding:0;position:relative;overflow-x:auto;overflow-y:scroll;box-sizing:border-box}.rsssl-ss-content.rtl{width:calc(100%+18px);right:auto}.ss-scroll{position:relative;background:rgba(0,0,0,0.1);width:9px;border-radius:4px;top:0;z-index:2;cursor:pointer;opacity:0;transition:opacity .25s linear}.ss-hidden{display:none}.ss-container:hover .ss-scroll,.ss-container:active .ss-scroll{opacity:1}.ss-grabbed{-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}
|
||||
1
wp-content/plugins/really-simple-ssl/includes/simple-scrollbar.min.js
vendored
Normal file
1
wp-content/plugins/really-simple-ssl/includes/simple-scrollbar.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
(function(a,b){if(typeof exports==="object"){module.exports=b(window,document)}else{a.SimpleScrollbar=b(window,document)}})(this,function(h,f){var e=h.requestAnimationFrame||h.setImmediate||function(d){return setTimeout(d,0)};function g(d){Object.defineProperty(d,"data-simple-scrollbar",{value:new j(d),configurable:true})}function i(d){if(!Object.prototype.hasOwnProperty.call(d,"data-simple-scrollbar")){return}d["data-simple-scrollbar"].unBind();delete d["data-simple-scrollbar"]}function b(o,m){var d;o.addEventListener("mousedown",function(p){d=p.pageY;o.classList.add("ss-grabbed");f.body.classList.add("ss-grabbed");f.addEventListener("mousemove",n);f.addEventListener("mouseup",l);return false});function n(p){var q=p.pageY-d;d=p.pageY;e(function(){m.el.scrollTop+=q/m.scrollRatio})}function l(){o.classList.remove("ss-grabbed");f.body.classList.remove("ss-grabbed");f.removeEventListener("mousemove",n);f.removeEventListener("mouseup",l)}}function k(l){this.target=l;this.content=l.firstElementChild;this.direction=h.getComputedStyle(this.target).direction;this.bar='<div class="ss-scroll">';this.mB=this.moveBar.bind(this);this.wrapper=f.createElement("div");this.wrapper.setAttribute("class","rsssl-ss-wrapper");this.el=f.createElement("div");this.el.setAttribute("class","rsssl-ss-content");if(this.direction==="rtl"){this.el.classList.add("rtl")}this.wrapper.appendChild(this.el);while(this.target.firstChild){this.el.appendChild(this.target.firstChild)}this.target.appendChild(this.wrapper);this.target.insertAdjacentHTML("beforeend",this.bar);this.bar=this.target.lastChild;b(this.bar,this);this.moveBar();h.addEventListener("resize",this.mB);this.el.addEventListener("scroll",this.mB);this.el.addEventListener("mouseenter",this.mB);this.target.classList.add("ss-container");var d=h.getComputedStyle(l);if(d.height==="0px"&&d["max-height"]!=="0px"){l.style.height=d["max-height"]}this.unBind=function(){h.removeEventListener("resize",this.mB);this.el.removeEventListener("scroll",this.mB);this.el.removeEventListener("mouseenter",this.mB);this.target.classList.remove("ss-container");this.target.insertBefore(this.content,this.wrapper);this.target.removeChild(this.wrapper);this.target.removeChild(this.bar);this.bar=null}}k.prototype={moveBar:function(o){var n=this.el.scrollHeight,d=this.el.clientHeight,p=this;this.scrollRatio=d/n;var l=p.direction==="rtl";var m=l?(p.target.clientWidth-p.bar.clientWidth+18):(p.target.clientWidth-p.bar.clientWidth)*-1;e(function(){if(p.scrollRatio>=1){p.bar.classList.add("ss-hidden")}else{p.bar.classList.remove("ss-hidden");p.bar.style.cssText="height:"+Math.max(p.scrollRatio*100,10)+"%; top:"+(p.el.scrollTop/n)*100+"%;right:"+m+"px;"}})}};function a(){var d=f.querySelectorAll("*[ss-container]");for(var l=0;l<d.length;l++){g(d[l])}}function c(){var d=f.querySelectorAll(".ss-container");for(var l=0;l<d.length;l++){i(d[l])}}f.addEventListener("DOMContentLoaded",a);k.initEl=g;k.initAll=a;k.unbindEl=i;k.unbindAll=c;var j=k;return j});
|
||||
Reference in New Issue
Block a user