使用 D3 创建 DIV 动态列表

2024-03-03

我一直在使用D3 http://d3js.org创建精美的动画图表,并且示例很棒。然而,我正在尝试做一些看似更基本的事情,但遇到了麻烦 - 将数据绑定到简单的 DIV 列表。

我设置了enter()以不透明度 0 初始化元素,transition()让它们淡入,并且exit()将它们淡出并删除。enter() and exit()似乎工作正常 - 然而,当更新包含列表中已有的现有元素时,它似乎被部分删除 - 包含的 DIV 仍然存在,但内容消失了。我不明白为什么元素的内容会以这种方式改变。

我的代码如下:

var data = [...];
sorted = data.sort(function(a, b) { return d3.descending(a.id, b.id); });

var tweet = tweetsBox
    .selectAll('div')
    .data(sorted, function(d) { return d.id; });

var enterDiv = tweet.enter()
    .append("div")
    .attr("class", "tweetdiv")
    .style("opacity", 0);
enterDiv.append("div")
    .attr("class", "username")
    .text(function(d) { return "@" + d.username });
enterDiv.append("div")
    .attr("class", "displayname")
    .text(function(d) { return d.displayname });
enterDiv.append("div")
    .attr("class", "date")
    .text(function(d) { return d.date });
enterDiv.append("div")
    .attr("class", "text")
    .text(function(d) { return d.text });

tweet.transition()
    .delay(200)
    .style("opacity", 1);

tweet.exit()
    .transition()
    .duration(200)
    .style("opacity", 0)
    .remove();

我也设置了这里有一个 jsFiddle http://jsfiddle.net/rWByD/1/演示该问题。


问题是你选择的是div您创建了一个,但创建了多个div每个数据元素。更新时,d3 尝试将数据与嵌套的匹配divs。因为您已经为顶层分配了一个特殊的类divs,修复非常简单。代替

.selectAll('div')

with

.selectAll('.tweetdiv')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 D3 创建 DIV 动态列表 的相关文章

  • 从 iframe 关闭父弹出窗口

    在domain1 com 上 我有一个链接 可以打开domain2 com 的弹出窗口 弹出窗口中有一个 iframe 也托管在 domain2 com 上 在 iframe 中 我试图关闭弹出窗口 我似乎对如何做到这一点感到困惑 在 if
  • JQuery:提交时不起作用

    我想要捕获所有表单提交事件 从操作属性获取 url 并使用它通过 AJAX 将表单内容发送到该地址 所以我只需要一个提交事件处理程序 然而我很快就遇到了麻烦 因为它似乎无法在 IE 中工作 document submit function
  • 简单的 JQuery 淡入淡出股票

    我查看了多个股票行情 它们的权重都远远不够 我正在寻找一个非常简单的 fadeIn fadeOut JQuery 滚动条 用于显示标题的元素列表 li Story 1 li li Story 2 li li Story 3 li li St
  • MVC6 项目中 jQuery-UI 脚本存储在哪里?

    我从 MVC6 开始 尝试使用一些 jQuery UI 元素 安装包后 我找不到 jQuery UI 的脚本文件 虽然互联网上的很多教程都告诉我们这些文件应该存储在 Scripts 文件夹中 例如 Scripts jquery ui 1 1
  • 我可以阻止history.popstate在初始页面加载时触发吗?

    我正在开发一个通过 AJAX 提供内容的网站 如果您单击菜单中的某个项目 内容 div 会更新为 get回应 没什么花哨的 我正在实施history pushState允许使用浏览器的后退 前进按钮进行导航 我有以下内容可以在历史导航上加载
  • 名称属性的 CSS 选择器?

    这可能是一个愚蠢的问题 但是属性的 CSS 选择器是什么 a 那是 名字 document body innerHTML myString anchor HTML String 这段 JavaScript 创建了一个 a 带有名称的元素 H
  • 如何使用 JS/Puppeteer 上传文件

    我试图弄清楚如何将图片文件上传到输入对话框中 不可能只输入名称并按 Enter 键 因为我没有找到使用 Puppeteer 实现自动化的方法 我想我必须设置一些值作为图片 但我不知道该怎么做 有任何想法吗 您使用上传文件elementHan
  • 删除数组中所有对象的属性

    我想删除bad数组中每个对象的属性 有没有比使用更好的方法for循环并从每个对象中删除它 var array bad something good something bad something good something for var
  • Jquery .scrollTop() 不工作

    标题解释了我的问题 这是我的代码 my div ul scrollTop my div ul 0 scrollHeight my div 使用 AJAX 填充 因此 在我的 ajax 请求中 我有一个执行上述代码的成功回调 ajax url
  • 新部署后,React 应用程序必须清除浏览器缓存

    我们正在使用 Jenkins 管道在 apache 服务器上部署 React 应用程序 当我们部署新代码时 大多数新功能都可以正常工作 但并非所有更改都反映浏览器中的最新内容 用户必须打开隐身窗口或清除缓存才能看到新功能 我见过一些相关的解
  • Angular2 - 防止复选框被选中

    我有一个每行包含一个复选框的表 在表头中 我有一个Check All切换所有表格行框的复选框 我正在尝试实现一些逻辑 如果复选框的数量将超过特定限制 则显示错误并且不切换表行复选框或checkall盒子本身 有一个问题允许checkAll即
  • JavaScript 检查时区名称是否有效

    有没有一种方法可以在不使用外部库的情况下检查 JavaScript 中的时区名称是否有效 当用户在文本字段中输入时区名称时 我想验证时区是否有效 我知道我们可以使用时刻时区库轻松做到这一点 但我不想使用任何额外的库 我正在寻找纯 JavaS
  • 扩展html表格突出显示行和列并使当前单元格具有不同的颜色

    我找到了用鼠标悬停时突出显示行和列的示例 https stackoverflow com a 28312853 139698 https stackoverflow com a 28312853 139698 如何使鼠标悬停的一个单元格变为
  • Electron 应用程序中的 NEDB 持久化

    我正在尝试从电子应用程序连接到 nedb CRUD 操作效果很好 但我没有看到 db 文件 D my db 检查隐藏文件 文件存在于某个地方 因为即使在机器重新启动后它也会保留数据 我怀疑电子威胁着我的相对路径 但我可以在任何地方找到它 v
  • 如何使用jquery点击眼睛图标时显示和隐藏密码

    我需要在单击眼睛图标时显示和隐藏用户密码 因此我为此编写了脚本 当我单击眼睛图标时 只有类正在更改 但密码不可见 再次单击斜线眼睛图标 它应该隐藏这两个图标方法不起作用如何解决这个问题
  • 如何在 Angular 2 中实现 D3

    我想将这段代码从 d3 js 实现到 Angular 2 组件 但我不知道如何将 js 文件调用到组件 ts 文件中 我找到了一些折线图的代码 包括index html和lineChart js 我怎样才能调用javascriptngAft
  • 角度距离计算

    我正在使用角度制作距离计算应用程序 Html
  • 如何让 Grunt.js 和 Meteor.js 协同工作?

    我想在我的 Meteor 应用程序中使用简单的复制和串联 但是当 Meteor 在服务器和客户端上运行所有 javascript 文件时 我遇到了问题 而我不希望它们在任何地方运行 它要么只是配置文件 例如Gruntfile js或我想以某
  • Chrome + 另一个进程:进程间通信比 HTTP/XHR 请求更快?

    我有一个进程 1 对视频流进行实时图像处理 我需要在 Chrome 中的 HTML 页面中渲染该视频 同一台计算机上的进程 2 在canvas or img or videoHTML5 元素 由于我有 1000x1000 像素 x 3 字节
  • 通过均匀分布值来有效合并两个数组

    我见过许多问题 答案主题是通过交替值合并两个数组 他们是这样工作的 let array1 a b c d let array2 1 2 let outcome a 1 b 2 c d 但我希望输出更加高效 并且根据数组大小均匀分配值 exp

随机推荐

  • 如何在 Angular 7 的表格上使用 Ngx-pagination

    嗨 我有一个清单 例如 0 姓名 Manu 年龄 21 爱好 Array 4 1 姓名 Anu 年龄 20 爱好 Array 3 2 姓名 nandu 年龄 22 爱好 Array 5 我需要在表格上显示这一点 所以我正在执行下面的代码 t
  • igraph - 邻居作为子图 - make_ego_graph() 作为单个图

    我想构造一个有向网络图的子图 其中所有顶点共享某个顶点属性 例如 V Grph year 1952 及其一阶 直接 邻居 基于仅在出度上 我试过了ego make ego graph neighbors and adjacent verti
  • 如何静默 cvxopt 求解器 [Python]?

    每当我在终端中运行 Python cvsopt 求解器时 它都会打印 pcost dcost gap pres dres 0 8 0742e 00 7 3715e 00 3e 03 5e 01 4e 15 1 6 6241e 01 7 28
  • 如何使用 dplyr 将函数应用于所有非 group_by 列?

    我正在尝试使用 dplyr 包将函数应用于 data frame 中未分组的所有列 我将使用aggregate aggregate Species data iris mean where mean应用于所有未用于分组的列 是的 我知道我可
  • 在 C# 中实现进度条的正确方法

    我正在学习 winforms 我给自己设定了一个简单的目标 即制作一个从空到满的进度条 这是我的畸形尝试 public partial class Form1 Form static BackgroundWorker bw new Back
  • Rails,使用控制器中文件的内容

    我有一个文件在config目录 比方说 my policy txt 我想在控制器中使用该文件的内容 就像使用简单的字符串一样 policy content of config my policy txt 如何实现这个目标 Rails是否提供
  • C 中函数指针语法的用途是什么?

    编辑 有人指出这个问题有点令人困惑 简短的版本是 为什么有一个单独的指针变量 例如 fnPtr 它指向一个函数 例如 fn 当函数名fn本身 没有参数 已经是一个指针 编辑 我正在尝试了解一些内容 并且可以使用社区有关函数指针的反馈 虽然这
  • iText 表格行距从右到左方向(阿拉伯语)

    我的应用程序是用英语和阿拉伯语两个不同版本开发的 我在 iText 中使用 rowspan 和 colspan 创建了 pdf 表 该表在英语版本中完美运行 但在阿拉伯语版本中 rowspan 不起作用 当我使用 setRunDirecti
  • 花式盒子 - 如何从单个缩略图显示幻灯片

    我的缩略图是分页的 因此任何一页上只有 6 个缩略图 大约 4 页 一个类别中总共 24 张图像 如果我将其设置在其中一个页面上 它只会显示该页面上的 6 个相关图像 如何使用 Fancybox 显示所有 24 张图像的幻灯片 提前谢谢了
  • 使用 moment.js 检查日期格式

    我正在从屏幕上的日历中获取这种类型的输入 DD MMM YYYY HH mm a 但用户可以从键盘提供日期 现在我必须检查用户是否以正确的格式提供了日期 我在我的应用程序中大量使用 moment js 并像这样验证它 if angular
  • 计算中位数移动平均单位成本时使用 Over(Partition By)

    早上好 我正在尝试计算特定仓库中每件商品的 12 个月移动平均成本 MAUC 我正在使用 2012 B 分页技巧来计算中位价格 http sqlperformance com 2012 08 t sql queries median htt
  • 在 Xcode 6.0.1 中使用仪器进行分析时应用程序挂起

    我观察到 每当我使用 Xcode 6 0 1 中的工具分析我的应用程序时 每次浏览应用程序时应用程序都会挂起 我正在使用 iPhone 5S iOS 8 0 2 来运行我的应用程序 当我在设备上运行该应用程序时 它运行得很好 找到修复 禁用
  • 使用 php 将事件插入谷歌日历

    如何将活动插入 Google 日历 我正在使用本指南 https developers google com google apps calendar v3 reference events insert https developers
  • 在android上使用ormlite删除?

    我有一个客户端 bean DatabaseField columnName client id generatedId true useGetSet true private Integer clientId DatabaseField c
  • 如何在网页视图中播放本地 swf 文件

    我正在尝试在 webview 中播放本地 swf 文件 保存在 asset 或 sdcard 中 但我没有运气 任何人都可以指导我正确的方法吗 我可以通过 url 播放 swf 文件 但是在 webview 中播放本地文件时遇到困难 swf
  • 如何使用 gson 库将字符串转换为 JsonObject

    请指教如何转换String to JsonObject using gson图书馆 我不成功的做法 String string abcde Gson gson new Gson JsonObject json new JsonObject
  • 如何忽略部分文本并在剩余部分进行搜索和替换? [复制]

    这个问题在这里已经有答案了 在文本文件中进行正则表达式查找和替换时 我想跳过并忽略文本的某些片段 也就是说 应该将文本的某些部分排除在搜索之外 而只对其余部分进行搜索和替换 标准是 1 任何介于START and END应从搜索和替换中排除
  • 通过 Enum 快速递增

    我喜欢 Swift 允许使用枚举方法 我正在尝试使用一种方法 但正在寻找一种更具可扩展性的方法来执行此操作 enum CopyState case binary hex both init self both mutating func n
  • 转换运算符:gcc 与 clang

    考虑以下代码 https godbolt org z s17aoczj6 https godbolt org z s17aoczj6 template
  • 使用 D3 创建 DIV 动态列表

    我一直在使用D3 http d3js org创建精美的动画图表 并且示例很棒 然而 我正在尝试做一些看似更基本的事情 但遇到了麻烦 将数据绑定到简单的 DIV 列表 我设置了enter 以不透明度 0 初始化元素 transition 让它