相关疑难解决方法(0)

在Svg中获取String的像素长度

我目前正在使用SVG.我需要知道字符串长度(以像素为单位)才能进行一些对齐.如何获取像素的字符串长度?

更新:感谢nrabinowitz.基于他的帮助,我现在可以获得动态添加文本的长度.这是一个例子:

<svg id="main" 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink"
    version="1.1" 
    width="1020"
    height="620" 
    viewBox="0 0 1020 620"
    onload="startup(evt)">

<script>
    <![CDATA[
        var startup = function (evt) {
            var width;
            var svgNS = "http://www.w3.org/2000/svg";
            var txtNode = document.createTextNode("Hello");
            text = document.createElementNS(svgNS,"text");

            text.setAttributeNS(null,"x",100);
            text.setAttributeNS(null,"y",100);
            text.setAttributeNS(null,"fill","black");
            text.appendChild(txtNode);                                              
            width = text.getComputedTextLength();               
            alert(" Width before appendChild: "+  width);                       
            document.getElementById("main").appendChild(text);
            width = text.getComputedTextLength();
            alert(" Width after appendChild: "+  width)
            document.getElementById("main").removeChild(text);              
        }       
    //]]>
</script>
</svg>
Run Code Online (Sandbox Code Playgroud)

javascript svg image

27
推荐指数
2
解决办法
2万
查看次数

如何在多行上均匀平衡文本?

我想显示一小段文字,可以包裹两三行.它是一个高度可视化的元素,为了造型目的,我希望线条的长度尽可能相等,更喜欢一条线而不是两条线.

而不是这个:

这是一个将包装为两个文本的示例

线.

我要这个:

这是一块的例子

将包装为两行的文本.

但我不想限制文本容器的宽度:

这篇文章足够长,几乎不适合两行.它

不应该包裹三行或更多行,因此没有宽度限制.

有没有办法在纯CSS或可容忍的JavaScript中执行此操作?

html javascript css

13
推荐指数
1
解决办法
3019
查看次数

Javascript Marquee替换<marquee>标签

我对Javascript毫无希望.这就是我所拥有的:

<script type="text/javascript">
    function beginrefresh(){

        //set the id of the target object
        var marquee = document.getElementById("marquee_text");

        if(marquee.scrollLeft >= marquee.scrollWidth - parseInt(marquee.style.width)) {
            marquee.scrollLeft = 0;
        }

        marquee.scrollLeft += 1;

        // set the delay (ms), bigger delay, slower movement
        setTimeout("beginrefresh()", 10);

    }
</script>
Run Code Online (Sandbox Code Playgroud)

它滚动到左边但我需要它相对无缝地重复.目前它只是跳回到开头.这可能不是我做的方式,如果没有,任何人都有更好的方法?

html javascript marquee

12
推荐指数
2
解决办法
8万
查看次数

如何以编程方式测量ASP.NET中的字符串像素宽度?

你如何得到一个字符串的大小?在Windows Forms中,它很简单,我只使用图形对象然后使用MeasureString函数.在ASP.NET中我不知道如何做到这一点.

asp.net string code-behind

9
推荐指数
1
解决办法
1万
查看次数

使用JavaScript以字母为单位获取字符串长度

我想知道String的确切长度(即"Hello World").

它不应该是我的容器的长度.

任何帮助???

javascript string pixels string-length

9
推荐指数
2
解决办法
3万
查看次数

检测输入(type = text)元素中的文本是否超出FireFox中的边界

有没有办法检测输入(type = text)元素的内容(值)是否超过其大小?

在Internet Explorer中,scrollWidth属性将大于style.width此时的属性.但是在Firefox中,scrollWidth总是等于style.width并且是一个已知的错误(https://bugzilla.mozilla.org/show_bug.cgi?id=343143),也许不是bug,因为Mozilla根本不认为输入元素是"可滚动的" ,但仍然.根据这种观点,Firefox的textarea元素scrollWidth在内容溢出边界时正确设置属性.

目前,我唯一的想法是:(a)使用textarea元素,并以某种方式将其限制为单行输入或(b)在输入的每个keyup事件中,将内容复制到类似形状的div元素并查看其scrollWidth属性.

在FF中有没有更好的方法来实现这一目标?

html javascript firefox dom input

7
推荐指数
1
解决办法
4261
查看次数

在javascript中以像素为单位测量字符串的长度

如果我知道font-size和font-family,如何在javascript中找到字符串的长度(以像素为单位)?

javascript

5
推荐指数
1
解决办法
2万
查看次数

在snapSVG中获取SVG容器大小?

使用SnapSVG获取'paper'对象大小的正确方法是什么?

我的HTML看起来如下:

<div id="myContainer" style="width: 900px; height: 100px" />
Run Code Online (Sandbox Code Playgroud)

然后是Javascript代码:

function initViewer(elementId) {
    var element, elementRef, snap;
    elementRef = '#' + elementId;
    element = $(elementRef);
    element.append('<svg style="width: ' + element.width() + 'px; height: ' + element.height() + 'px; border: solid 1px black;"/>');
    snap = Snap(elementRef + ' svg');
    console.log(snap.getBBox());
}
Run Code Online (Sandbox Code Playgroud)

我在这里观察到的是所有属性的边界框都有'0',所以我不能在这里依赖边界框值.有没有办法做到这一点,而不必去父元素?

基本上我想要的就是SVG的宽度和高度,所以我可以为视图绘制合适大小的形状.

JS Fiddle,说明了这个问题:https://jsfiddle.net/ajmas/kdnx2eyf/1/

javascript height width snap.svg

3
推荐指数
1
解决办法
7204
查看次数