Added stickyscroll
This commit is contained in:
parent
d38c5c77d4
commit
9491de4cb1
58
client/components/jquery/stickyscroll.js
vendored
Normal file
58
client/components/jquery/stickyscroll.js
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/*!
|
||||||
|
* stickyscroll
|
||||||
|
* https://github.com/erming/stickyscroll
|
||||||
|
* v2.1.0
|
||||||
|
*/
|
||||||
|
(function($) {
|
||||||
|
$.fn.sticky = function() {
|
||||||
|
if (this.size() > 1) {
|
||||||
|
return self.each(function() {
|
||||||
|
$(this).sticky(options);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var isBottom = false;
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
this.on("beforeAppend", function() {
|
||||||
|
isBottom = isScrollBottom.call(self);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.on("afterAppend", function() {
|
||||||
|
if (isBottom) {
|
||||||
|
self.scrollBottom();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var overflow = this.css("overflow-y");
|
||||||
|
if (overflow == "visible") {
|
||||||
|
overflow = "auto";
|
||||||
|
}
|
||||||
|
this.css({
|
||||||
|
"overflow-y": overflow
|
||||||
|
});
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
$.fn.scrollBottom = function() {
|
||||||
|
return this.each(function() {
|
||||||
|
$(this).animate({scrollTop: this.scrollHeight}, 0);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function isScrollBottom() {
|
||||||
|
if ((this.scrollTop() + this.outerHeight() + 1) >= this.prop("scrollHeight")) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var append = $.fn.append;
|
||||||
|
$.fn.append = function() {
|
||||||
|
this.trigger("beforeAppend");
|
||||||
|
append.apply(this, arguments).trigger("afterAppend")
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
})(jQuery);
|
@ -174,7 +174,6 @@ button {
|
|||||||
bottom: 40px;
|
bottom: 40px;
|
||||||
left: 0;
|
left: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
overflow: auto;
|
|
||||||
right: 180px;
|
right: 180px;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
@ -230,6 +229,9 @@ button {
|
|||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
padding-right: 6px;
|
padding-right: 6px;
|
||||||
}
|
}
|
||||||
|
#messages .text a {
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
#messages .type {
|
#messages .type {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
display: none;
|
display: none;
|
||||||
@ -310,9 +312,10 @@ button {
|
|||||||
#form input {
|
#form input {
|
||||||
border: 0;
|
border: 0;
|
||||||
border-top: 1px solid #e9ecef;
|
border-top: 1px solid #e9ecef;
|
||||||
|
font: 13px Consolas, monospace;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
outline: none;
|
outline: none;
|
||||||
padding: 0 10px;
|
padding: 0 12px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
#submit {
|
#submit {
|
||||||
|
@ -49,6 +49,7 @@ $(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
socket.on("init", function(data) {
|
socket.on("init", function(data) {
|
||||||
|
console.log("INIT");
|
||||||
networks.empty();
|
networks.empty();
|
||||||
channels = $.map(data.networks, function(n) {
|
channels = $.map(data.networks, function(n) {
|
||||||
return n.channels;
|
return n.channels;
|
||||||
@ -73,6 +74,9 @@ $(function() {
|
|||||||
channels: [data.chan]
|
channels: [data.chan]
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
network.find(".chan")
|
||||||
|
.last()
|
||||||
|
.trigger("click");
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("msg", function(data) {
|
socket.on("msg", function(data) {
|
||||||
@ -156,9 +160,10 @@ $(function() {
|
|||||||
var chan = find(id);
|
var chan = find(id);
|
||||||
if (typeof chan !== "undefined") {
|
if (typeof chan !== "undefined") {
|
||||||
activeChannel = chan;
|
activeChannel = chan;
|
||||||
chat.html(
|
chat.html(render("chat", chan));
|
||||||
render("chat", chan)
|
chat.find(".window")
|
||||||
);
|
.sticky()
|
||||||
|
.scrollBottom();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
2
client/js/components.min.js
vendored
2
client/js/components.min.js
vendored
File diff suppressed because one or more lines are too long
@ -9,7 +9,7 @@ module.exports = function(network, chan, cmd, args) {
|
|||||||
var client = this;
|
var client = this;
|
||||||
var irc = network.irc;
|
var irc = network.irc;
|
||||||
|
|
||||||
if (args.length === 0) {
|
if (args.length === 0 || args[0] == "") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user