- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在底部的每个网页中显示实时聊天框。我做到了,但校准工作不正常。我想让它类似于这个实时聊天框示例:( https://www.tawk.to/testimonials/ )。请帮助我如何做到这一点。
我的代码是:https://jsfiddle.net/fn77d0de/2/
// JavaScript Document
var username = "";
function send_message(bot_response) {
var prevState = $("#container").html();
console.log(prevState.length);
if (prevState.length > 8) {
prevState = prevState + "<br>";
}
$("#container").html(prevState + "<span class='current_message'>" + "<span class='chatBot'>Chatbot: </span>" + bot_response + "</span>");
$("#container").scrollTop($("#container").prop("scrollHeight"));
$(".current_message").hide();
$(".current_message").delay(500).fadeIn();
$(".current_message").removeClass("current_message");
//$("#container").html("<span class='chatBot'>Chatbot: </span>" + message );
}
function get_userName() {
//send_message("Hello, what is your name?");
username = "${outParams.userName}";
send_message("Nice to meet you " + username + ", how may can may I help you.");
}
function ai(newMessage) {
var id = "1";
var path = "http://localhost:8080/vfim/chatService.do";
if (username.length < 1) {
username = newMessage;
send_message("Nice to meet you " + username + ", how are you doing?");
} else if (newMessage.indexOf("how are you") >= 0) {
send_message("Thanks, I am good!");
} else if (newMessage.indexOf("time") >= 0) {
var date = new Date();
var h = date.getHours();
var m = date.getMinutes();
send_message("Current time is: " + h + ":" + m);
} else {
$.post(path,
{
userMessage: newMessage
},
function(data) {
//alert("inside ajax"+data);
send_message(data);
});
/* $.get(path,function(data){
console.log("no match");
console.log(data);
send_message(data);
}); */
}
}
$(function() {
$.ajax({
url: "chatWindow.html",
type: 'GET',
success: function(data) {
$('body').append(data);
//$('#content').html($(data).find('#content').html());
$('head').append('<link rel="stylesheet" href="style.css" type="text/css" />');
var logged_in = false;
$(".pageTitleHeader").click(function() {
logged_in = !logged_in;
checkLogin();
});
function checkLogin() {
if (logged_in)
$(".contentBox").show();
else
$(".contentBox").hide();
}
}
});
get_userName();
$("#textarea").keypress(function(event) {
if (event.which == 13) {
if ($("#enter").prop("checked")) {
console.log("enter pressed");
$("#send").click();
event.preventDefault();
//$("#textarea").val("");
}
}
});
$("#send").click(function() {
var userName = "<span class='uname'>You: </span>";
var latestMessage = $("#textarea").val();
$("#textarea").val("");
var prevState = $("#container").html();
//console.log(prevState.length);
if (prevState.length > 1) {
prevState = prevState + "<br>";
}
$("#container").html(prevState + userName + latestMessage);
$("#container").scrollTop($("#container").prop("scrollHeight"));
ai(latestMessage);
});
});
setTimeout(function() {
$("#live-chat").css({
"display": "block"
});
}, 900); // 30 seconds in MS
// Store our panel into a variable.
var $myPanel = $("#live-chat");
// Get the height of the panel dynamically.
var $myPanelHeight = parseInt($myPanel.height());
// Immediately set the opacity to 0 - to hide it and set its bottom to minus its height.
$myPanel.css({
"opacity": 0,
"bottom": "-" + $myPanelHeight + "px"
});
// Set a timeout for the panel to slide and fade in.
setTimeout(function() {
$myPanel.animate({
// The CSS properties we want to animate (opacity and bottom position).
opacity: 1,
bottom: '0'
}, 2000, function() {
// Animation complete.
// You can put other code here to do something after it has slid-in.
});
}, 30000); // 30 seconds in MS
function getScripts(scripts, callback) {
var progress = 0;
scripts.forEach(function(script) {
$.getScript(script, function() {
if (++progress == scripts.length) callback();
});
});
}
body {
margin: 0;
background-color: #f2f2f2;
font-family: arial, sans-serif;
font-weight: bold;
}
#header {
width: 100%;
height: 60px;
background-color: #333;
box-shadow: 0px 4px 2px #333;
}
#header>h1 {
width: 1024px;
margin: 0px auto;
color: white;
}
#container {
width: 1024px;
height: 400px;
margin: 0px auto;
margin-top: 20px;
background-color: white;
border: 1px solid #333;
overFlow: scroll;
}
#controls {
width: 1024px;
margin: 0px auto;
}
#textarea {
resize: none;
width: 940px;
}
#send {
font-size: 24px;
position: absolute;
}
.uname {
color: blue;
font-weight: bold;
}
.chatBot {
color: green;
font-weight: bold;
}
#live-chat {
position: absolute;
bottom: 0px;
right: 0px;
/* width: 200px;
height: 100px;*/
z-index: 5;
background: #789;
border-radius: 5px 5px 0 0;
padding: 10px;
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<a href="page1.html">Page1</a>
<a href="page2.html">Page2</a>
<a href="page3.html">Page3</a>
<div id="live-chat">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr class="livepageTitle">
<td width="50%" class="maincurve" scope="col">
<h1 class="pageTitleHeader">Live Chat</h1>
</td>
<td width="50%" class="maincurvecls" scope="col">
<table border="0" align="right" cellpadding="0" cellspacing="0" id="tblPageContent">
<tr>
<!-- BODY STARTS -->
<td height="31" align="right" valign="middle" nowrap class="innerPageTopLeftBGWithText">
<dt:timeZone id="IST">IST</dt:timeZone>
<dt:format pattern="dd-MMM-yyyy [hh:mm a z]" timeZone="IST">
<dt:currentTime />
</dt:format>
</td>
<!-- <td width="14" height="31" align="right" valign="middle"><a href="#" title="Help" onClick="helpWindow('corporate/admin/admin_ma_accrts_add.htm')"><img src="/sbijava/images/help_icon.jpg" alt="Help" width="14" height="13" border="0" align="middle"></a></td> -->
<!-- <td width="29" height="31" align="right" valign="middle" class="helpAndPrintLinks" onClick="helpWindow('corporate/admin/admin_ma_accrts_add.htm')"><a href="#" title="Help">Help</a> </td> -->
</tr>
<!-- BODY ENDS -->
<!-- FOOTER STARTS -->
<!-- FOOTER ENDS -->
</table>
</td>
</tr>
<!-- Tab starts -->
<tr class="contentBox">
<td colspan="2" align="left" valign="top" scope="row" class="pageContentBG">
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0" class="tabtblbrdr">
<!-- <tr>
<td colspan="6" class="innerPageSectionHeading">Select the Date Range </td>
</tr> -->
<tr>
<td align="left" width="30%">
<!-- <div id="header">
<h1>jQuery Chatbot v. 1.0</h1>
</div> -->
<div id="container"> </div>
<div id="controls">
<textarea id="textarea" placeholder="Enter your message here..."></textarea>
<button id="send">Send</button>
<br>
<input checked type="checkbox" id="enter">
<label>Send on enter</label>
</div>
</td>
</tr>
</table>
<br>
</td>
</tr>
</table>
</div>
</body>
</html>
最佳答案
好的,让我首先告诉您为什么这不起作用。原因有很多。
导致此中断的具体样式如下。
#controls {
width: 1024px; /* This width */
margin: 0px auto;
}
#textarea {
resize: none;
width: 940px; /* This width */
}
#container {
width: 1024px; /* This width */
height: 400px;
margin: 0px auto;
margin-top: 20px;
background-color: white;
border: 1px solid #333;
overFlow: scroll;
}
您可以在这里看到,在您使用的众多类中,宽度非常大。您也使用过表格,我不太清楚为什么。不需要它们,尤其是对于您正在从事的工作。我已经把所有这些都去掉了,至于你需要什么,你可以用纯 css 来实现。
还有更多我想改变的,但这个答案是专门解决你关于对齐的问题。您可以在下面找到我的更改。如果您对我所做的有任何疑问,我很乐意解释。
#live-chat {
position: absolute;
bottom: 0px;
right: 20px;
width: 300px;
height: auto;
z-index: 5;
background: #789;
border-radius: 5px 5px 0 0;
padding: 10px;
display: block;
box-sizing: border-box;
}
#send {
font-size: 24px;
margin-top: 10px;
}
#textarea {
resize: none;
width: 100%;
}
<a href="page1.html">Page1</a>
<a href="page2.html">Page2</a>
<a href="page3.html">Page3</a>
<div id="live-chat">
<h1 class="pageTitleHeader">Live Chat</h1>
<!--
<dt:timeZone id="IST">IST</dt:timeZone>
<dt:format pattern="dd-MMM-yyyy [hh:mm a z]" timeZone="IST">
<dt:currentTime />
</dt:format> -->
<a href="#" title="Help" onClick="helpWindow('corporate/admin/admin_ma_accrts_add.htm')"><img src="/sbijava/images/help_icon.jpg" alt="Help" width="14" height="13" border="0" align="middle"></a>
<textarea id="textarea" placeholder="Enter your message here..."></textarea>
<button id="send">Send</button>
<input checked type="checkbox" id="enter">
</div>
关于jquery - 实时聊天框的 CSS 对齐问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48456904/
我有一个名为 main.css 的 css 文件和另一个名为 style.css 的文件。我怎样才能在 main.css 中做到这一点? .someClass { //apply rules to
在更新我的 css 之前,我在 Login.css 中有以下内容: body { background-image: url('./pictures/fond.png'); bac
我的 share point 2013 核心 css 和我的 css 之间存在 css 冲突。所以我想把我所有的类都放在 div #s4-workspace 下但是我搜索了一种方法来将所有类分组到这个
我知道您可以覆盖 jsp 页面从 jsp 包含 CSS 文件(即全局 CSS 文件)继承的 CSS 属性。 但是,如果元素中的某个属性弄乱了特定页面,而我不想只使用内联 CSS 在该页面中使用它怎么办
我刚刚发现了 initial-scale 元属性。 以前,我一直在使用 default.css 来定义我所有的样式和大小(用于字体和元素),以便它们在桌面计算机的屏幕上显示得很好。然后,如果您使用的是
我正在尝试使用 LESS CSS 来编写我的 CSS。我已经按顺序导入了 style.less 和 less.js 文件。 现在我想提取 LESS 生成的 CSS。有什么办法可以做到吗?我不想使用脚本
我想知道是否有任何一种软件可以读取大量内联样式中的 HTML 文档并将所有这些样式转换为外部 css 文件。如果只有一页,我可以手动完成。但是有100页。有人有想法吗? 最佳答案 就像有人说的那样,“
当我想从 Styled Components 迁移到 CSS Modules 时,出现了以下问题。 假设我有以下样式组件,它接受动态参数 offset和一个动态 CSS 字符串 theme : con
有没有办法将 CSS 类定义为与另一个类相等?例如,如果我有一个类: .myClass{ background-color: blue; } 有没有一种方法可以将第二个类定义为与 myClas
我正在尝试制作一组按钮,这些按钮贴在页面底部并且由固定的空间隔开。我正在使用 angularJS 的 ng-repeat 指令通过 ajax 请求获取数据,然后我用它来显示按钮。 我的问题在于让按
浏览器是否在加载 CSS 文件时解析 CSS?还是在整个 CSS 文件被浏览器下载后才进行解析?不同浏览器的做法有区别吗?我在哪里可以找到这种底层信息? 这个问题不是 Load and executi
这个问题在这里已经有了答案: Can a CSS class inherit one or more other classes? (29 个答案) 关闭 3 年前。 标题有点乱,我给大家看一下。假
我遇到了最奇怪的问题...... 在最简单的形式中,我有一个包含以下内容的 index.html 文件: (在尝试确定根本原因的过程中,我已经大大减少了它) 当我查看页面的源代码时,我得到以下信息:
我正在使用 Mindscape Workbench 来最小化我的 scss 文件。我的页面设置为使用 *.min.css 文件。在随机时间,min 文件不会与系统的其余部分一起发布。 我有很多 css
请告诉我 CSS 框架和 CSS 网格之间的区别。 最佳答案 CSS 框架也可以是 CSS 网格框架。 CSS 网格框架用于构建 CSS 布局。有一些框架除了构建布局还有其他用途,例如 Hartija
我有无法从页面中删除或更改的 original.css 文件。原始.css table { border-collapse: collapse; border-spacing: 0;
我以前使用 bootstrap css import 很好。 但是我正在尝试使用 CSS 模块,所以我添加了几行。 { test: /\.css$/, use:
有没有办法在 css 选择器中创建一个 css 组。 例如: .SectionHeader { include: .foo; include: .bar; include: .
今天我学习了 CSS 中的两个概念,一个是 CSS 定位(静态、相对、绝对、固定),另一个是 CSS Margin,它定义了元素之间的空间。 假设我想移动一个元素,这是最好的方法吗?因为这两个概念似乎
var paths = { css: './public/apps/user/**/*.css' } var dest = { css: './public/apps/user/css/' } /
我是一名优秀的程序员,十分优秀!