我正在从事一些个人项目,它就像聊天的前端。所以我有我的用户,我有一个带有在线和离线用户列表的 JSON。当网站首次加载时,我还加载用于自定义滚动的插件并使用 jquery ui 使元素可拖动。我想知道的是,是否有一种方法可以使添加到正文(聊天窗口)的新元素自动滚动,并且每次添加它们时都有这个自定义滚动条。到目前为止,我所做的是:
$(document).on("ready", functions);
function functions() {
$("#contacts-container").slimScroll({
height: '220',
size: '10px',
position: 'right',
color: '#535a61',
alwaysVisible: false,
distance: '0',
railVisible: true,
railColor: '#222',
railOpacity: 0.3,
wheelStep: 10,
disableFadeOut: false
});
$(".messages-container").slimScroll({
height: '200',
size: '10px',
position: 'right',
color: '#535a61',
alwaysVisible: false,
distance: '0',
railVisible: true,
railColor: '#222',
railOpacity: 0.3,
wheelStep: 10,
disableFadeOut: false,
start: "bottom"
});
$("#online .user-name").on("click", checkUser);
};
function checkUser(){
console.log("clicked");
var user = $(this).html();
$.getJSON("js/options.json", function(json){
var itemsLength = json.chat.OnlineContacts.length;
for ( var i = 0; i < itemsLength; i++) {
var jsonUserName = json.chat.OnlineContacts[i].name;
var jsonUserStatus = json.chat.OnlineContacts[i].status;
var jsonUserAvatar = json.chat.OnlineContacts[i].picture;
if(user == jsonUserName){
displayChatWindow(jsonUserName, jsonUserStatus, jsonUserAvatar);
}
};
});
}
function displayChatWindow(user, status, avatar){
console.log(avatar);
var template = _.template($("#windowTemplate").html(), {userName: user, userStatus: status, userAvatar: avatar});
$("body").prepend(template);
$(".messages-container").slimScroll({
height: '200',
size: '10px',
position: 'right',
color: '#535a61',
alwaysVisible: false,
distance: '0',
railVisible: true,
railColor: '#222',
railOpacity: 0.3,
wheelStep: 10,
disableFadeOut: false,
start: "bottom"
});
$(".friend-window").draggable({handler: ".header"});
}
在 DisplayChatWindow 上,我附加了代表聊天窗口的 div 模板,但我还必须重新添加 slimScroll 函数和 draggabla 函数,但我希望它们在我附加后自动拥有它,我正在学习 Java Script所以我不知道是否使用一个对象我可以实现这一点,或者是否有其他方法,基本上我在这里所做的到目前为止我最知道如何做,如果你们能帮助我,我将不胜感激:)