分割分割';使用Javascript将内容分为两列

分割分割';使用Javascript将内容分为两列,javascript,multiple-columns,Javascript,Multiple Columns,我试图找到一种方法,通过遵循逻辑过程将一个div的内容拆分为两列 对于逻辑过程,我的意思是,我希望将内容大致分成两半,但不打断第一列的最后一句话 所以我想让我完成第一栏的最后一句话,然后把另一部分分开,在另一栏中打印出来,这就是为什么它几乎从不被“切成两半” 因此,我想以这种方式保留我的第一个专栏: 同侧阴唇 阿梅特,康塞特图尔 告别精英。 虎杖 在威尼斯的梅特斯 梅特斯的虎鲸 马蒂斯威尼斯酒店 而不是将其切成两半可能发生的类似情况: 第一栏: 同侧阴唇 阿梅特,康塞特图尔 告别精英。 虎杖 在

我试图找到一种方法,通过遵循逻辑过程将一个div的内容拆分为两列

对于逻辑过程,我的意思是,我希望将内容大致分成两半,但不打断第一列的最后一句话

所以我想让我完成第一栏的最后一句话,然后把另一部分分开,在另一栏中打印出来,这就是为什么它几乎从不被“切成两半”

因此,我想以这种方式保留我的第一个专栏:

同侧阴唇 阿梅特,康塞特图尔 告别精英。 虎杖 在威尼斯的梅特斯 梅特斯的虎鲸 马蒂斯威尼斯酒店

而不是将其切成两半可能发生的类似情况:

第一栏: 同侧阴唇 阿梅特,康塞特图尔 告别精英。 虎杖 在威尼斯的梅特斯 梅特斯的虎鲸 维内纳蒂斯

第二栏: 马蒂斯。。。etc(其余第二列)

这是真的很难找到有关的文件,我已经搜索了一段时间

我试图遵循以下原则:

但目前它似乎没有分裂任何东西:

HTML


有什么好主意吗

如果你不局限于JS,你可以使用CSS。

你的代码中有一些(逻辑)错误,但这应该会让你走上正确的轨道

  • `split=function(){…}后缺少分号
  • textSplitter.prototype.LENGTH_TO_SPLIT=5000,且仅使用443个字符的文本;)
window.onload=function(){
函数TextSplitter(){}
TextSplitter.prototype.LENGTH_TO_SPLIT=200;//将其更改为200
TextSplitter.prototype.split=函数(){
var contentDiv=document.getElementById(“拆分”);
var text=contentDiv.innerHTML;
var length=text.length;
var-statemens=text.split('.');//将段落拆分为多个句子
//为了简单起见,我只需要生成两个div
如果(长度>此长度到分割){
var div1sbstr='';
做{
div1sbstr+=句子.shift()+'.;//由于split()的原因,我们需要添加一个点
}while(div1sbstr.length
div{
填充:10px;
}

Lorem ipsum dolor sit amet,是一位杰出的献身者。怀孕前的猫的性骚扰,虐待者的性骚扰。整数a在酒后驾车。潜力悬钩子。在hac habitasse Plateum,一句名言。杜奈克·康瓦利斯·法雷特拉·迪亚姆,我是欧洲之门的芸香。莫比·费吉亚·莫里斯·塞德·维韦拉·帕特。佩伦特斯·阿利夸姆(Pellentsque aliquam),尼布·阿库姆(nibh ac accumsan Vehiclula),前布朗迪特·夸姆(justo blandit quam),位于东印度西部的朗卡斯·图尔皮斯(rhoncus turpis neque)。

若要拆分为两列,请尝试以下操作

$(document).ready(function () {
        var textStr = $('#split')[0].innerText;
        var length = textStr.length;
        var halfLength = parseInt(length / 2);
        var div1 = document.createElement("div");
        var div1Str = textStr.substring(0, halfLength);
        if (textStr.substring((halfLength) + 1, 1) != ".")
            div1Str=div1Str.concat(textStr.substring((halfLength) + 1, textStr.indexOf(".", (halfLength) + 1) + 1));
        textStr=textStr.replace(div1Str,'');
        $('body').append("<div>" + div1Str + "</div>");
        if (textStr != "") {
            $('body').append("<div>" + textStr.substring(textStr.indexOf(".", (halfLength) + 1) + 2, length) + "</div>");
        }
    });
$(文档).ready(函数(){
var textStr=$('#split')[0];
var length=textStr.length;
var halfLength=parseInt(长度/2);
var div1=document.createElement(“div”);
var div1Str=textStr.substring(0,半长);
if(textStr.子字符串((半长)+1,1)!=“)
div1Str=div1Str.concat(textStr.substring((半长)+1,textStr.indexOf(“.”,(半长)+1)+1));
textStr=textStr.replace(div1Str',);
$('body')。追加(“+div1Str+”);
如果(textStr!=“”){
$('body').append(“+textStr.substring(textStr.indexOf(“.”,半长)+1)+2,length)+”);
}
});

此代码接收文本作为变量,根据需要将其拆分为小块,并在变量中设置。然后将它们并排显示在两列中

var text=`我试图找到一种方法,通过遵循逻辑过程将一个div的内容拆分为两列。对于逻辑过程,我的意思是,我希望将内容大致分成两半,但不打断第一列的最后一句话。o我想让你完成第一栏的最后一句话,然后把另一部分分开,在另一栏中打印出来,这就是为什么它几乎从不被“一分为二”。Lorem ipsum dolor sit amet,是一位杰出的献身者。威尼斯河豚中的虎鱼,威尼斯河豚中的虎鱼,
numberOfLineChars=30;
var输出=[];
对于(变量i=0;i=text.length)中断;
}
如果(i`;
}
第一列+=“”;
对于(var i=num1;i`;
}
第二列+=“”
$(“#内容”).append(第一列)。append(第二列)
p{
文本对齐:对齐;
}
.内容{
背景:水;
保证金:自动;
填充:10px;
}
.一{
显示:块;
填充:10px;
宽度:40%;
背景:红色;
浮动:左;
}
.二{
宽度:40%;
浮动:对;
填充:10px;
背景:黑色;
颜色:红色;
}


是否要将其拆分为两列或多列?结果必须是两列,但在此阶段也可以是三列,因为
function textSplitter(){
}

textSplitter.prototype.LENGTH_TO_SPLIT=5000 //max chars in single line

textSplitter.prototype.split=function(){
    var contentDiv=document.getElementById("split"); // get an element
    var text=contentDiv.innerHTML; 
    var length= text.length; 
    if(length){
        var div1sbstr=text.substring(0,this.LENGTH_TO_SPLIT); //take a substring
        var div1=document.createElement("div");
        contentDiv.appendChild(div1); // append it
    }
    if(length>this.LENGTH_TO_SPLIT){
        var div2sbstr=text.substring(this.LENGTH_TO_SPLIT,this.LENGTH_TO_SPLIT*2);
        var div2=document.createElement("div");
        contentDiv.appendChild(div2);
    }
    if(length>this.LENGTH_TO_SPLIT*2){
        var div3sbstr=text.substring(this.LENGTH_TO_SPLIT*2,this.LENGTH_TO_SPLIT*3);
        var div3=document.createElement("div");
        contentDiv.appendChild(div3);
    }
}
$(document).ready(function () {
        var textStr = $('#split')[0].innerText;
        var length = textStr.length;
        var halfLength = parseInt(length / 2);
        var div1 = document.createElement("div");
        var div1Str = textStr.substring(0, halfLength);
        if (textStr.substring((halfLength) + 1, 1) != ".")
            div1Str=div1Str.concat(textStr.substring((halfLength) + 1, textStr.indexOf(".", (halfLength) + 1) + 1));
        textStr=textStr.replace(div1Str,'');
        $('body').append("<div>" + div1Str + "</div>");
        if (textStr != "") {
            $('body').append("<div>" + textStr.substring(textStr.indexOf(".", (halfLength) + 1) + 2, length) + "</div>");
        }
    });