小编aug*_*aug的帖子

D3树形布局 - 当儿童超过一定数量时自定义垂直布局

我正在尝试使用D3 Tree Layout来创建各种各样的家谱,我注意到的一件事是,当我有很多子节点时,它会在屏幕上水平伸展.理想情况下,我希望这些节点有一个更垂直的布局,这样人们就不必在屏幕上滚动,只能继续向下看树.

这是我目前看到的:

在此输入图像描述

现在它可能不是那么糟糕,但如果我说了20个孩子,它将跨越整个屏幕,这是我有点想避免的.

我已经看到了这样的问题这样,但是这并不能帮助我,因为我想一个特定的布局,而不是简单地调整大小...我有大的节点,他们开始彼此,如果我尝试动态调整树碰撞-萎缩这棵树对我没有好处.对于有超过一定数量的孩子的情况,我特别需要不同的布局.

这是我想象/希望的那种.请注意,root不会生成此格式,因为它只有4个子节点.理想情况下,我想要它,如果父母有5个或更多的孩子,它将导致下面的布局.如果根有5个子节点,则会导致这种布局,如果用户想要查看根的孙子节点(A,B,C ......节点),布局应该只是垂直伸展.如果有必要,我可以得到一个图表: 在此输入图像描述

我找到了关于自定义儿童布局半类似问题,他说他必须使用实际的d3js代码.我有点想避免这种情况,所以我希望能够找到d3js是否可行,因为它现在就是这样,如果是这样,怎么去呢?我不需要一个完整的答案,但是一段代码证明这是可能的,这将是非常有帮助的.

如果有必要,我可以上传一个JSFiddle供人们玩.

javascript tree svg data-visualization d3.js

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

Express.js 使用 Router 和 App.use 路由的好处?

根据Express 文档app.use和 Router 都实现了路由器接口,并且都可以作为中间件。

所以基本上你可以通过做来定义路线

app.use(function (req, res, next) {
  next();
})
Run Code Online (Sandbox Code Playgroud)

或者你也可以做

var router = express.Router();
router.get('/', function (req, res, next) {
  next();
})
app.use(router);
Run Code Online (Sandbox Code Playgroud)

我只是想知道我是否有理由在应用程序上使用路由器?我唯一能找到的使用一个或另一个是我需要与我的params. 只是好奇。

routes node.js express

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

git - 如何列出自特定日期以来尚未更改的所有文件?

我正在尝试获取存储库中自某个日期以来未被触及的文件列表.

我试图利用git log --before="X months ago" --name-only然后比较该列表,git log --after="X months ago" --name-only但我不确定是否有更简单的方法?

那还是有办法获取每个文件的HEAD提交日期并过滤列表?我不确定最好的办法是什么.

git

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

视频的canplay 和loadedmetadata 事件监听器有什么区别?

loadedmetadata我想知道视频的事件侦听器和事件侦听器之间有什么区别canplay。根据MDN:

canplay 当有足够的数据可供媒体播放(至少播放几帧)时发送。这对应于 CAN_PLAY 就绪状态。

loadmetadata 媒体元数据已完成加载;所有属性现在都包含尽可能多的有用信息。

还有两个事件侦听器,包括loadeddataloadedstart

对于我的用例,我想等待video元素加载,以便我可以获取video.currentTime. 我的timeupdate函数使用此信息,但我相信视频未完全加载,因此它会引发一个小错误,即无法获取视频的当前时间。

等待视频加载或播放的最佳做法是什么?

html video addeventlistener

4
推荐指数
1
解决办法
6112
查看次数

为什么文件扩展名在网络上区分大小写,而在localhost上不区分?

所以我试图在我的网站上链接一个图像<img src="cat.png alt="cat"/>,因为某些原因它不起作用.后来我发现,当上传到我的服务器上的文件被标记为"cat.PNG"所以我认为输入和固定.但是,当我在localhost上测试我的网站时,它很好.为什么是这样?这是一些安全问题还是localhost在解析文件时更聪明?

我知道这是一个奇怪而随机的问题,但我很好奇.谢谢.

file localhost server-side src

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

D3 - 大型GeoJSON文件未使用投影正确显示绘图

我在绘制从data.seattle.gov中提取的GeoJSON文件时遇到问题.具体来说,我正在使用可在此处找到的Shape文件.我将它转换为GeoJSON文件,我在下面提供了一个小样本.

通过使用D3,我希望得出西雅图应该是不同的区域(实际上我不完全确定它应该是什么,这就是为什么我画它...哈...)但由于某种原因尽管正确计算了路径,但它没有正确显示.

在这里举办了我的例子.当我有时间设置它时,我会尝试用jsFiddle替换这个链接.问题是,GeoJSON文件非常大,所以我不认为jsFiddle是理想的.

我的代码很简单......我只是根据GeoJSON文件的功能添加路径.

var width = 1000,
    height = 1000;

var svg = d3.select("body")
            .append("svg")
            .attr("width", width + "px")
            .attr("height", height + "px");

var projection = d3.geo.mercator()
    .scale(150)
    .translate([width/2, height/2]);

var path = d3.geo.path()
    .projection(projection);

var g = svg.append("g");

d3.json("geojson/data.geo.json", function(data) {
    console.log(data);
    g.selectAll("path")
        .data(data.features)
        .enter()
        .append("path")
        .attr("d", path)
        .attr("stroke", "black")
        .attr("stroke-width", "5px")
        .attr("fill-opacity", 0);
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,我觉得它只显示其中一条路径而不是所有路径.起初我以为可能是因为有某种填充而且它们只是隐藏在彼此之上,但我将其设置fill-opacity为0,这也没有帮助.

以下是GeoJSON文件的一小部分示例.

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [ …
Run Code Online (Sandbox Code Playgroud)

javascript maps data-visualization geojson d3.js

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

使用 &lt;img&gt; 与 &lt;image&gt; 引用 SVG

我注意到有两种方法可以引用 SVG 图像。您可以使用标准<img>标签

<img src="picture.svg" alt="SVG Image"/>
Run Code Online (Sandbox Code Playgroud)

或者你可以使用<image>标签

<svg>
   <image xlink:href="picture.svg" x="0" y="0" height="50px" width="50px"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

对我来说,简单地使用该标签似乎更好<img>,因为您获得的alt属性使其更适合搜索,并且您还可以通过 CSS 应用样式。我在应用样式时遇到问题,因为 SVG<image>需要属性。

<image>我想知道您使用 SVG标签而不是标准标签是否有重要原因<img>

css svg image

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

Express-Handlebars:获取当前 URL 查询并将查询传递给模板?

目前我已经设置了Express3-Handlebars,我正在尝试获取当前 URL,提取 GET 查询,并将其传递到辅助函数中的车把模板。不过,我无法找到一种方法来将发送到车把助手的请求传递给我,因为我似乎只能访问路线中的当前 URL。

app.get('/somewhere', function(req, res) {
  console.log(req.originalUrl); <-- prints the URL I am at such as somewhere?country=US
  res.render('somewhere-home', {
    somewhere-info: global.somewhere-info
    globals: global.globals,
    css:['/media/css/somewhere.css'
    ],
    js:[
        '/media/js/somewhere.js'
    ]
  });
});
Run Code Online (Sandbox Code Playgroud)

我希望编写一个辅助函数,可以利用节点的url库并将 URL 传递给 Handlebars

helpers: {
        currentURL: function() { 
            console.log(url.parse(req.originalUrl, true));
            return url.parse(req.originalUrl, true);
        },
Run Code Online (Sandbox Code Playgroud)

然后我可以在我的车把文件中以某种方式访问​​它。我希望我的模板能够智能地打印一些东西,但是如果我收到某个请求,则打印另一件事。所以像

{{#if currentURL.query == 'US' }}
    <h1>Welcome to US!</h1>
{{else}}
    <h1>Welcome to wherever the hell you are from!</h1>
{{/if}}
Run Code Online (Sandbox Code Playgroud)

不确定我是否以错误的方式处理这个问题。我在Express 的app.get文档中读到,您可以处理某些 GET 请求并根据它们渲染特定页面,但我真的只想更改车把模板文件中的一件小事情,所以我希望不必为每个请求创建多个车把模板我要处理的 GET …

node.js express handlebars.js

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

有没有办法在 Visual Studio Code 中安装扩展列表?

我维护了一个存储库,可以在任何设备上为我的编辑器安装我需要的所有扩展——这对于 Sublime、Atom 和 Vim 来说相当简单,因为它们都有包管理器,允许我运行一个命令来安装一个列表包。

我查看了 VS Code 管理扩展,看起来有一种方法可以在文件中共享扩展建议,但听起来只是填充了建议。我也知道我可以一个一个地手动调用每个扩展并调用,code --install-extension [extension]但这似乎很乏味(我可以编写脚本并让它通过我自己的列表,但想知道是否有更好的方法)。

visual-studio-code

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

javascript中~~和+之间的区别?

它们似乎都输出相同的结果并将字符串转换为数字.我不知道有什么区别吗?我似乎无法找到关于~~运算符的任何文档.

var hey = true
hey = +hey //hey = 1

var hey = true 
hey = ~~hey //hey = 1

var num = "1231"
num = ~~num //num = 1231

var num = "1231"
num = +num //num = 1231
Run Code Online (Sandbox Code Playgroud)

我找到了一个区别,那就是~~总是会尝试输出一个数字,而有些情况只能返回NaN

num = "omfg"
num = ~~num //num = 0

num = "omfg"
num = +num //num = NaN

num = {}
num = ~~num //num = 0

num = {}
num = +num //num = NaN
Run Code Online (Sandbox Code Playgroud)

任何澄清都会很棒:)

javascript variables nan

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

Node.js:如何在模块中获取需要函数的文件名?

我正在尝试从需要模块功能的地方获取原始文件名.我知道你可以使用__filename获取当前文件,但我想获取原始文件.

例如,我将拥有一个简单的模块

module.js

module.exports(function() {
   return {
     print : function(message) {
        console.log(__filename + ' ' + message);
     };
   }
});
Run Code Online (Sandbox Code Playgroud)

app.js

var module = require('./module')();
module.print('hello');
Run Code Online (Sandbox Code Playgroud)

最终会发生什么,它会打印,module.js hello但我真的很想看app.js hello.

我正在探索获得它的方法,我知道你可以用它console.trace来查看堆栈的调用,但我不能解析它来做我想要的.

现在我已经通过使print函数接受另一个参数并且你只是__filename从内部传递来解决它,app.js但我想找到一个我不必这样做的解决方案.

console module require node.js

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

PHP标头和Javascript window.location有什么区别?

所以,当我教别人如何重定向他们的页面时,我会想到这一点.我不太确定主要区别是什么......你有没有理由使用其中一个?我想如果你不是用PHP编码,你必须使用Javascript window.location来重定向,但是如果你用window.locationPHP header开发,你会用PHP吗?我觉得他们的功能非常相似,但也许我错过了一些东西.

javascript php header window.location

0
推荐指数
1
解决办法
1320
查看次数

如何使悬停效果不适用于:伪选择器之前?

我有一个非常简单的链接,显示为块,角落里有一个小绿星.

的jsfiddle

我想这样做,当你将鼠标悬停在链接上时,链接本身会略微透明,但:before伪选择器不会受到影响.

我看了一些关于这方面的问题,但由于某种原因,我无法让他们的解决方案起作用.这可能吗?我不确定我是否只是编写错误的CSS选择器.

编辑:理想情况下,我希望能够处理背景图像和背景颜色.

css hover css3

0
推荐指数
1
解决办法
876
查看次数