Jquery 模糊整个<;李>;除了最后一句话
我有一个socket.IO应用程序,它还将数据保存到MongoDB 我试图找到一种方法,模糊整个句子,除了最后一个词 行所在位置的代码:Jquery 模糊整个<;李>;除了最后一句话,jquery,css,node.js,socket.io,dust.js,Jquery,Css,Node.js,Socket.io,Dust.js,我有一个socket.IO应用程序,它还将数据保存到MongoDB 我试图找到一种方法,模糊整个句子,除了最后一个词 行所在位置的代码: {#storylines} <li>{text}</li> {/storylines} <input id="newstoryline" name="newstoryline" class="StoryBoard" type="text" placeholder="" onKeyDown="countChars()" onKey
{#storylines}
<li>{text}</li>
{/storylines}
<input id="newstoryline" name="newstoryline" class="StoryBoard" type="text" placeholder="" onKeyDown="countChars()" onKeyUp="countChars()"/>
Socket.IO(服务器端):
我同意lix的观点。用span标记将要模糊的部分换行,并用css将样式应用于该标记
socket.on('updatechat', function (username, data) {
var dataSplit= data.split(' ');
var lastWord = dataSplit.pop();
var toBlur= '<span class="blur">' + dataSplit.join(' ') + '</span>';
$('#newstoryline').before('<li>' + toBlur + lastWord + '</li>');
});
您必须使用自己的HTML元素(例如
)来包装每一行或每一个单词。然后对除最后一个外的所有eMenet产生影响。但是它从服务器接收的数据是一个长字符串,难道没有办法让javascript计算出字符串的长度,然后减去最后一个空格,然后从0-->x模糊吗?或者类似的东西?你可以使用JavaScript的功能来分隔单词…在拆分文本后,我可以用JS/CSS来模糊文本吗?是的,有-但我不确定跨浏览器支持。。您可以搜索CSS3过滤器。我已经尝试了上面的代码,但它似乎没有更新。当我在控制台上键入“testmessage”时,我得到:uncaughttypeerror:objecttestmessage没有方法“join”
看起来它不喜欢data。join(“”)
通过稍微将其修改为socket.on('updatechat',function(username,data){var dataSplit data.split(“”)来实现这一点;var toBlur=''+dataSplit.pop()代码>但是,如果我发送消息“这是一条测试消息”,它是单词消息,而不是单词这是一个测试不确定这是否是最好的方法,但我修改了以下代码:socket.on('updatechat',function(username,data){var dataSplit=data.split(“”);var toBlur=dataSplit.pop()$(“#newstoryline”)。在(“”+”+dataSplit.join(“+”+“+”+”+toBlur+” );})之前;
似乎起了作用。我更正了我答案中的错误,它的dataSplit.join()不是data.join()。我还错误地认为你只想模糊最后一个词。你的修订看起来是正确的。谢谢,效果很好!我会投票给答案,但上面说我需要15次或更多
app.get('/s/:id', function(req, res){
Story.findOne({ sid: req.params.id }, function(err, story){
if (err) {
res.redirect('/')
}
else if(story == null) {
res.redirect('/')
}
else{
res.render('story', {
title: 'Storifi',
storytitle: story.title,
storylines: story.lines,
lines: story.maxlines,
storyid: story.sid
maxlines: story.maxlines
});
}
});
});
socket.on('sendchat', function (data) {
// we tell the client to execute 'updatechat' with 2 parameters
io.sockets.in(socket.room).emit('updatechat', socket.username, data);
socket.on('updatechat', function (username, data) {
var dataSplit= data.split(' ');
var lastWord = dataSplit.pop();
var toBlur= '<span class="blur">' + dataSplit.join(' ') + '</span>';
$('#newstoryline').before('<li>' + toBlur + lastWord + '</li>');
});
.blur{
color: transparent;
text-shadow: 0 0 5px #000;
}