javascript

java

python

c#

node.js

reactjs

android

php

c++

ruby-on-rails

html

jquery

git

css

ios

sql

.net

c

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

string

javascript - 根据覆盖的背景区域的亮度更改文本颜色?

我已经考虑了一段时间了,所以现在我想了解你的意见,可能的解决方案等等。

我正在寻找一种插件或技术来改变文本的颜色,或者根据它的父母背景图像或颜。

如果其背景的覆盖区域相当暗,请将文本设为白色或切换图标。

另外,如果脚本没有定义背景颜色或-image,然后继续搜索最近的(从父元素到它的父元素......),脚本会注意到它会很棒。。

您怎么看,知道这个想法? 那里有类似的东西吗?脚本的例子吗?

干杯,J。

trans by 2019-08-13T22:49:58Z

HTML - 如何在html5中居中画布

我现在一直在寻找解决方案,但还没找到任何东西。 也许它只是我的搜索条件。好吧,我试图根据浏览器窗口的大小制作画布中心。 画布是800x600。如果窗口低于800x600,它也应该调整大小(但目前不是很重要)

trans by 2019-08-12T09:01:48Z

javascript - 使用requestAnimationFrame控制fps?

似乎requestAnimationFrame是现在制作动画的事实上的方法。 在大多数情况下,它对我来说效果很好,但是现在我正在尝试做一些画布动画,我想知道:有没有办法确保它以某个fps运行? 我知道rAF的目的是为了一贯平滑的动画,我可能冒着使我的动画不稳定的风险,但是现在它似乎以极其不同的速度运行,并且我想知道是否有&#39 一种以某种方式打击的方式。

我使用setInterval,但我想要rAF提供的优化(尤其是当选项卡处于焦点时自动停止)。

如果有人想查看我的代码,它几乎是:

animateFlash: function() {
    ctx_fg.clearRect(0,0,canvasWidth,canvasHeight);
    ctx_fg.fillStyle = 'rgba(177,39,116,1)';
    ctx_fg.strokeStyle = 'none';
    ctx_fg.beginPath();
    for(var i in nodes) {
        nodes[i].drawFlash();
    }
    ctx_fg.fill();
    ctx_fg.closePath();
    var instance = this;
    var rafID = requestAnimationFrame(function(){
        instance.animateFlash();
    })

    var unfinishedNodes = nodes.filter(function(elem){
        return elem.timer < timerMax;
    });

    if(unfinishedNodes.length === 0) {
        console.log("done");
        cancelAnimationFrame(rafID);
        instance.animate();
    }
}

其中Node.drawFlash()只是一些代码,它根据计数器变量确定半径,然后绘制一个圆。

trans by 2019-08-11T02:24:01Z

在HTML5画布上绘制SVG文件

是否有将SVG文件绘制到HTML5画布上的默认方式? 谷歌浏览器支持将SVG加载为图像(并且只使用drawImage),但开发人员控制台确实警告resource interpreted as image but transferred with MIME type image/svg+xml

我知道有可能将SVG转换为canvas命令(比如这个问题),但我希望不需要。 我不关心旧的浏览器(所以如果FireFox 4和IE 9支持某些东西,那就足够了)。

trans by 2019-08-02T15:27:31Z

javascript - 来自HTML Canvas的getPixel?

是否可以查询HTML Canvas对象以获取特定位置的颜色?

trans by 2019-08-01T16:08:50Z

css - 将three.js背景更改为透明或其他

我一直试图改变我的画布的默认背景颜色,从黑色到透明/任何其他颜色 - 但没有运气。

我的HTML:

<canvas id="canvasColor">

我的CSS:

<style type="text/css">
#canvasColor {
 z-index: 998;
opacity:1;
background: red;
}
</style>

正如您在下面的在线示例中所看到的,我在画布上附加了一些动画,所以不能只做一个不透明度:0; 在id上。

实时预览:[http://devsgs.com/preview/test/particle/]

有任何想法如何覆盖默认黑色?

trans by 2019-07-30T19:21:00Z

javascript - <canvas>元素的最大大小

我正在使用高度为6001000像素的宽度为几十或几十万像素的画布元素。 然而,在一定数量的像素(显然未知)之后,画布不再显示我用JS绘制的形状。

有谁知道是否有限制?

在Chrome 12和Firefox 4中都进行了测试。

trans by 2019-07-28T09:55:55Z

javascript - 如何使用canvas.toDataURL()将画布保存为图像?

我目前正在构建一个HTML5网络应用程序/ Phonegap本机应用程序,我似乎无法弄清楚如何将我的画布保存为canvas.toDataURL()的图像。有人可以帮助我吗?

这是代码,它有什么问题?

//我的画布名为“canvasSignature”

JavaScript的:


function putImage()
{
  var canvas1 = document.getElementById("canvasSignature");        
  if (canvas1.getContext) {
     var ctx = canvas1.getContext("2d");                
     var myImage = canvas1.toDataURL("image/png");      
  }
  var imageElement = document.getElementById("MyPix");  
  imageElement.src = myImage;                           

}  

HTML5:


<div id="createPNGButton">
    <button onclick="putImage()">Save as Image</button>        
</div>
trans by 2019-07-21T18:01:52Z

在HTML5画布上绘制一个点

这个问题在这里已有答案:

  • 在HTML5画布中设置单个像素的最佳方法是什么?                                     14个答案

使用context.moveTo()context.lineTo()函数在HTML5画布上绘制一条线非常简单。

我不太确定是否可以绘制一个点,即单个像素的颜色。 lineTo函数不会绘制单个像素线(显然)。

有没有办法做到这一点?

trans by 2019-07-18T01:41:46Z

如何使用javascript HTML5画布通过N个点绘制平滑曲线?

对于绘图应用程序,我将鼠标移动坐标保存到数组,然后使用lineTo绘制它们。 生成的线条不平滑。 如何在所有聚集点之间生成单条曲线?

我用谷歌搜索但我只找到了3个绘制线的函数:对于2个样本点,只需使用lineTo。 对于3个样本点,quadraticCurveTo,对于4个样本点,bezierCurveTo。

(我尝试在阵列中每4个点绘制一个bezierCurveTo,但这会导致每4个采样点扭结,而不是连续的平滑曲线。)

如何编写一个函数来绘制一个包含5个样本点的平滑曲线?

trans by 2019-07-16T03:06:21Z

如何在html5中制作透明画布?

如何使画布透明? 我需要因为我想把两幅画布放在一起。

trans by 2019-07-12T12:03:45Z

HTML canvas JavaScript库和框架的当前最新技术是什么?

我目前正在研究在新的HTML 5应用程序中使用canvas的选项,并且想知道HTML canvas JavaScript库和框架中当前的最新技术水平是什么?

特别是,是否有框架支持游戏开发所需的东西 - 复杂的动画,管理场景图,处理事件和用户交互?

也愿意考虑商业和开源产品。

trans by 2019-07-09T07:49:03Z

html5 - 如何在本地将一个画布的内容复制到另一个画布

我想复制一个画布的所有内容并将它们转移到客户端的所有内容。 我认为我会使用toDataURL"data:image/png;base64,"方法来实现这个,但我遇到了一些问题。

我的解决方案是获取toDataURL并将其存储在Javascript中的Image对象中,然后使用"data:image/png;base64,"方法将其放回。

但是,我相信toDataURL方法返回一个64位编码标签,前面加上"data:image/png;base64,"。 这似乎不是一个有效的标签,(我总是可以使用一些RegEx来删除它),但是"data:image/png;base64,"子串有效图像之后是64位编码的字符串吗? 我可以说image.src=iVBORw...ASASDAS,并在画布上画回来吗?

我查看了一些相关问题:使用base64将画布图像从一个画布显示到另一个画布

但解决方案似乎不正确。

trans by 2019-07-06T21:09:07Z

html5 - 快速响应的交互式图表/图形:SVG,Canvas,其他?

我正在尝试选择合适的技术来更新项目,该项目基本上可以在可缩放的可缩放图形中渲染数千个点。 使用Protovis的当前实现表现不佳。 看看这里:

[http://www.planethunters.org/classify]

完全缩小时大约有2000个点。 尝试使用底部的手柄放大一点,然后拖动它以平移。 除非你有一台真正快速的计算机,否则你会发现它非常不稳定,你的CPU使用率可能在一个核心上达到100%。 对焦点区域的每次更改都会调用重绘为protovis,这种方法非常慢,并且绘制的点数越多越差。

我想对界面进行一些更新,以及更改底层可视化技术,以便更灵敏地进行动画和交互。 从下面的文章看,似乎是在另一个基于SVG的库或基于画布的库之间进行选择:

[http://www.sitepoint.com/how-to-choose-between-canvas-and-svg/]

d3.js,源自Protovis,基于SVG,应该更好地渲染动画。 但是,我怀疑它有多好,它的性能上限是多少。 出于这个原因,我还在考虑使用像KineticJS这样的基于画布的库进行更彻底的检修。 但是,在我使用一种或另一种方法之前,我希望听到那些使用这么多数据做过类似Web应用程序并得到他们意见的人。

最重要的是性能,第二个重点是易于添加其他交互功能和编程动画。 一次可能不会超过2000个点,每个点上的误差小。 放大,缩小和平移需要顺利进行。 如果最新的SVG库在这方面还不错,那么使用d3的方便性可能会超过KineticJS的增加设置等。但是如果使用画布有巨大的性能优势,特别是对于计算机速度较慢的人来说,那么我 肯定会喜欢这样。

使用SVG的NYTimes制作的应用程序示例,但仍然可以顺利地动画:[http://www.nytimes.com/interactive/2012/05/17/business/dealbook/how-the-facebook-offering-compares.html]。 如果我可以获得该性能而不必编写自己的画布绘图代码,我可能会选择SVG。

我注意到一些用户使用了混合的d3.js操作和画布渲染。 但是,我无法在线找到有关此内容的文档或与该帖子的OP联系。 如果有人有任何使用DOM-to-Canvas(演示,代码)实现的经验,我也想听听你的意见。 它似乎是一个很好的混合体,能够操纵数据并对如何渲染数据进行自定义控制(以及性能),但我想知道是否必须将所有内容加载到DOM中仍然会减慢速度。

我知道有一些类似于这个问题的现有问题,但它们都没有提出同样的问题。 谢谢你的帮助。

后续行动:我最终使用的实现是[https://github.com/zooniverse/LightCurves]

trans by 2019-07-06T01:05:50Z

javascript - 如何将一个简单的onClick事件处理程序添加到canvas元素?

我是一位经验丰富的Java程序员,但我在大约十年来第一次看到一些JavaScript / HTML5的东西。 我完全不知道应该是最简单的事情。

作为一个例子,我只想绘制一些东西并为其添加一个事件处理程序。 我确定我做了一些愚蠢的事情,但是我已经搜索了所有内容并且没有任何建议(例如,这个问题的答案:添加onclick属性以使用JavaScript输入)。 我使用的是Firefox 10.0.1。 我的代码如下。 您将看到几条注释行,并在每一行的末尾描述了(或什么不会发生)。

这里的正确语法是什么? 我疯了!

<html>
<body>
    <canvas id="myCanvas" width="300" height="150"/>
    <script language="JavaScript">
        var elem = document.getElementById('myCanvas');
        // elem.onClick = alert("hello world");  - displays alert without clicking
        // elem.onClick = alert('hello world');  - displays alert without clicking
        // elem.onClick = "alert('hello world!')";  - does nothing, even with clicking
        // elem.onClick = function() { alert('hello world!'); };  - does nothing
        // elem.onClick = function() { alert("hello world!"); };  - does nothing
        var context = elem.getContext('2d');
        context.fillStyle = '#05EFFF';
        context.fillRect(0, 0, 150, 100);
    </script>

</body>

trans by 2019-07-04T21:57:04Z

javascript - 缩放<canvas>时禁用插值

注意:这与放大时现有画布元素的渲染方式有关,而与线条或图形在画布表面上的渲染方式无关。 换句话说,这与缩放元素的插值有关,而与在画布上绘制的图形的抗锯齿无关。 我并不关心浏览器如何绘制线条; 我关心浏览器在放大时如何渲染canvas元素。


是否有画布属性或浏览器设置我可以通过编程方式更改以在缩放image-rendering: -webkit-optimize-contrast元素时禁用插值? 跨浏览器解决方案是理想的,但不是必需的; 基于Webkit的浏览器是我的主要目标。 表现非常重要。

这个问题最相似,但没有充分说明问题。 为了它的价值,我尝试了image-rendering: -webkit-optimize-contrast无济于事。

该应用程序将是一个复古&#34; 用HTML5 + JS编写的8位风格游戏,清楚地说明了我的需求。


为了说明,这是一个例子。 (现场版)

假设我有一个21x21画布......

<canvas id='b' width='21' height='21'></canvas>

...有css使元素大5倍(105x105):

canvas { border: 5px solid #ddd; }
canvas#b { width: 105px; height: 105px; } /* 5 * 21 = 105 */

我画了一个简单的&#39; X&#39; 在画布上像这样:

$('canvas').each(function () {
    var ctx = this.getContext("2d");
    ctx.moveTo(0,0);
    ctx.lineTo(21,21);
    ctx.moveTo(0,21);
    ctx.lineTo(21,0);
    ctx.stroke();
});

左边的图像是Chromium(14.0)渲染的图像。 右边的图像是我想要的(手绘为了说明目的)。

Chrome interpolates scaled canvas elements A non-interpolated version

trans by 2019-06-29T21:17:57Z

c# - 在ItemsControl DataTemp中设置Canvas属性

我正在尝试数据绑定到DataTemplate

<ItemsControl ItemsSource="{Binding Path=Nodes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

使用这个DataTemplate,我正在尝试将我的Node元素单独定位在Canvas上:

<DataTemplate DataType="{x:Type Model:EndNode}">
    <Controls:EndNodeControl Canvas.Left="{Binding Path=XPos}" Canvas.Top="{Binding Path=YPos}" />
</DataTemplate>

但是,它没有按预期工作。 我的所有节点元素都在相同的位置上绘制在一起。 有关如何完成此任务的任何建议?

trans by 2019-06-24T23:14:07Z

javascript - 如何在HTML5画布上绘制多边形?

我需要知道如何在画布上绘制多边形。 不使用jQuery或类似的东西。

trans by 2019-06-21T12:20:53Z

javascript - HTML5 / Canvas是否支持双缓冲?

我想做的是在缓冲区上绘制我的图形然后能够将其原样复制到画布上,这样我就可以做动画并避免闪烁。 但我找不到这个选项。 谁知道我怎么能这样做?

trans by 2019-06-18T03:35:55Z

javascript - 在上传之前使用HTML5调整图片大小

我发现了一些不同的帖子,甚至还有关于stackoverflow回答这个问题的问题。 我基本上和这篇文章一样实现了同样的东西。

所以这是我的问题。 当我上传照片时,我还需要提交表单的其余部分。 这是我的HTML:

<form id="uploadImageForm" enctype="multipart/form-data">
  <input name="imagefile[]" type="file" id="takePictureField" accept="image/*" onchange="uploadPhotos(\'#{imageUploadUrl}\')" />
  <input id="name" value="#{name}" />
  ... a few more inputs ... 
</form>

以前,我不需要调整图像大小,所以我的javascript看起来像这样:

window.uploadPhotos = function(url){
    var data = new FormData($("form[id*='uploadImageForm']")[0]);

    $.ajax({
        url: url,
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data){
            ... handle error...
            }
        }
    });
};

这一切都很有效...现在我需要调整图像的大小......如何替换表单中的图像以便调整已调整大小的图像而不是上传的图像?

window.uploadPhotos = function(url){

    var resizedImage;

    // Read in file
    var file = event.target.files[0];

    // Ensure it's an image
    if(file.type.match(/image.*/)) {
        console.log('An image has been loaded');

        // Load the image
        var reader = new FileReader();
        reader.onload = function (readerEvent) {
            var image = new Image();
            image.onload = function (imageEvent) {

                // Resize the image
                var canvas = document.createElement('canvas'),
                    max_size = 1200,
                    width = image.width,
                    height = image.height;
                if (width > height) {
                    if (width > max_size) {
                        height *= max_size / width;
                        width = max_size;
                    }
                } else {
                    if (height > max_size) {
                        width *= max_size / height;
                        height = max_size;
                    }
                }
                canvas.width = width;
                canvas.height = height;
                canvas.getContext('2d').drawImage(image, 0, 0, width, height);
                resizedImage = canvas.toDataURL('image/jpeg');
            }
            image.src = readerEvent.target.result;
        }
        reader.readAsDataURL(file);
    }


   // TODO: Need some logic here to switch out which photo is being posted...

    var data = new FormData($("form[id*='uploadImageForm']")[0]);

    $.ajax({
        url: url,
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data){
            ... handle error...
            }
        }
    });
};

我已经考虑过将文件输入移出表单并在表单中隐藏输入,我将值设置为调整大小的图像的值...但我想知道我是否可以只替换图像 已经在形式。

trans by 2019-06-16T08:43:14Z

1 2 3 下一页 共3页