文章目录

  • 何为tooltips?
  • 实现小贴士的2种方法:
    • 增加title标签,text就是title的内容,默认mouseover,mouseout处理
    • 定义tooltips,定义处理mouseover,mouseout
  • 完整示例

何为tooltips?

tips就是小贴士,tooltips就是小贴士工具

实现小贴士的2种方法:

增加title标签,text就是title的内容,默认mouseover,mouseout处理

  node.append("title").text(function(d) { return d.name; });

定义tooltips,定义处理mouseover,mouseout

    var tooltip = d3.select("#render").append("div").attr("class", "tooltip").style("opacity", 0);var node =svg.selectAll(".node").data(force.nodes()).enter().append('g').attr("class", "node").on("mouseover", function (d) {if (d.tooltip) {tooltip.transition().duration(200).style("opacity", .9);tooltip.html(d.tooltip).style("left", (d3.event.pageX) + "px").style("top", (d3.event.pageY - 28) + "px");}}).on("mouseout", function (d) {if (d.tooltip) {tooltip.transition().duration(500).style("opacity", 0);}}).call(force.drag);

完整示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#render {overflow: auto;text-align: center;}#render .node {cursor: pointer;}#render .node circle {fill: #fff;stroke: steelblue;stroke-width: 1.5px;}#render .node text {font: 16px "Hiragino Sans GB", "华文细黑", "STHeiti", "微软雅黑", "Microsoft YaHei", SimHei, "Helvetica Neue", Helvetica, Arial, sans-serif !important;}#render .link {fill: none;stroke: #ccc;stroke-width: 1.5px;}#render .tooltip {position: absolute;padding: 8px;text-align: left;font: 16px "Hiragino Sans GB", "华文细黑", "STHeiti", "微软雅黑", "Microsoft YaHei", SimHei, "Helvetica Neue", Helvetica, Arial, sans-serif !important;background: rgba(0, 0, 0, .87);color: #fff;border: 0px;border-radius: 8px;pointer-events: none;}#render .tooltip hr {padding: 0;margin: 8px 0;}</style><script src="http://d3js.org/d3.v3.min.js"></script></head>
<body>
<div id="render"></div>
</body><script>var nodes = {};links = [{"source":{name: 'Nexus 4',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'},"relation":"好纠结","target":{name: 'Nexus 9',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'}},{"source":{name: 'Nexus 9',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'},"relation":"好纠结3","target":{name: 'Nexus 7',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'}},{"source":{name: 'Nexus 8',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'},"relation":"好纠结1","target":{name: 'Nexus 9',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'}},{"source":{name: 'Nexus 1',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'},"relation":"好纠结2","target":{name: 'Nexus 4',tooltip: 'Dimensions:<br/>5.43 x 2.72 x 0.34 inches (137.84 x 69.17 x 8.59 mm)<hr/>Resolution:<br/>1080 x 1920 pixels<hr/>Processor:<br/>Quad-core, 2260 MHz, Krait 400'}}]links.forEach(function (link) {link.source = nodes[link.source.name] || (nodes[link.source.name] = link.source);link.target = nodes[link.target.name] || (nodes[link.target.name] = link.target)});var margin = {top: 20,right: 120,bottom: 20,left: 120},width = 960 - margin.right - margin.left,height = 960 - margin.top - margin.bottom;var tooltip = d3.select("#render").append("div").attr("class", "tooltip").style("opacity", 0);var svg = d3.select("#render").append("svg").attr("width", width + margin.left + margin.right).attr("height", height + margin.top + margin.bottom).append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");var force = d3.layout.force()//layout将json格式转化为力学图可用的格式.nodes(d3.values(nodes))//设定节点数组.links(links)//设定连线数组.size([width, height])//作用域的大小.linkDistance(150)//连接线长度//.gravity(.0001).charge(-800)//顶点的电荷数。该参数决定是排斥还是吸引,数值越小越互相排斥.on("tick", tick)//指时间间隔,隔一段时间刷新一次画面.start();//开始转换var link = svg.selectAll(".link").data(force.links()).enter().append("line").attr("class", "link");var node =svg.selectAll(".node").data(force.nodes()).enter().append('g').attr("class", "node").on("mouseover", function (d) {if (d.tooltip) {tooltip.transition().duration(200).style("opacity", .9);tooltip.html(d.tooltip).style("left", (d3.event.pageX) + "px").style("top", (d3.event.pageY - 28) + "px");}}).on("mouseout", function (d) {if (d.tooltip) {tooltip.transition().duration(500).style("opacity", 0);}}).call(force.drag);node.append("circle").style("fill","red").style("opacity", .1).attr("r", 30);node.append("text").attr("dy", ".35em").attr("text-anchor", "middle")//在圆圈中加上数据.text(function(d) { return d.name; });force.on("tick", tick);function tick() {link.attr("x1", function(d) { return d.source.x; }).attr("y1", function(d) { return d.source.y; }).attr("x2", function(d) { return d.target.x; }).attr("y2", function(d) { return d.target.y; });node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });};</script>
</html>

D3js(五):tooltips相关推荐

  1. D3js(六):支持css的tooltips

    文章目录 实现如下效果,不是简单的文本,而是有样式的文本 1.配置一个tooltips的div块: 2.配置tooltips div块的css: 3.配置节点上的事件处理: 实现如下效果,不是简单的文 ...

  2. 五款炫酷精美动态登录页面,彩虹气泡动态云层深海灯光水母炫酷星空蛛网HTMLCSS源码

    完整源码详见 微信公众号:创享日记 对话框发送:登录页面 获取HTML+CSS+js等源码文件 一.彩虹气泡登录页面 效果图: HTML源码: <!DOCTYPE html> <ht ...

  3. 五分钟搭建一个基于BERT的NER模型

    BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...

  4. Spring Data JPA 五分钟快速入门和实践

    Spring Data JPA(类似于Java Web 中的 DAO) 操作声明持久层的接口(Repository) 三个核心接口: CrudRepository PagingAndSortingRe ...

  5. 操作系统学习笔记 第五章:文件管理(王道考研)

    本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...

  6. 王道考研 计算机网络笔记 第五章:传输层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...

  7. TVM性能评估分析(五)

    TVM性能评估分析(五) Figure 3. A futher speed up with operator fusion Table 1. Performance issue of cuBLAS' ...

  8. AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)

    AlexeyAB DarkNet YOLOv3框架解析与应用实践(五) RNNs in Darknet 递归神经网络是表示随时间变化的数据的强大模型.为了更好地介绍RNNs,我强烈推荐Andrej K ...

  9. 大数据调度平台Airflow(五):Airflow使用

    目录 Airflow使用 一.Airflow调度Shell命令 1.首先我们需要创建一个python文件,导入需要的类库 2.实例化DAG 3.定义Task 4.设置task依赖关系 5.上传pyth ...

最新文章

  1. 独创大学生答辩毕业设计系统
  2. Python基础-小程序练习(跳出多层循环,购物车,多级菜单,用户登录)
  3. Sql plus命令报command not found的解决笔记
  4. CF 526F Max Mex(倍增求LCA+线段树路径合并)
  5. spring cloud feign 上传文件报not a type supported by this encoder解决方案
  6. 快速迁移 Next.js 应用到函数计算
  7. P2820 局域网(最小生成树)
  8. linux windows爆音,如何解决 Windows 服务器远程桌面的爆音问题
  9. c语言char a什么意思,C语言中char *a[ ]什么意思,他和char (*)a[ ]有什么什么区别?...
  10. 经历“海潮效应”,云图如何成为智能家居界的苹果?
  11. linux swp文件重启,Linux下.swp文件的恢复方法
  12. win10定时开机(Win10定时开机关机)
  13. spyeye手机远程控制手机苹果免越狱封装支持扫码安装
  14. 1.2什么是HLSL
  15. babel安装后无法使用:babel : 无法加载文件 C:\Users\DZG\AppData\Roaming\npm\babel.ps1
  16. 比特大陆内部究竟发生了什么?
  17. 【历史上的今天】10 月 20 日:微软黑屏事件;Ubuntu Linux 操作系统发布;Apple Pay 正式上线
  18. 【Alpha】阶段第四次Scrum Meeting
  19. python 中画球体_Matplotlib/basemap:在p的中心绘制一个球体
  20. 贝塞尔曲线公式,我是你爸爸

热门文章

  1. oracle取两条sql查询结果的差集,并集,交集
  2. CRMEB删除公众号首页logo动画
  3. PHP中一些可用的方法
  4. MySQL分页查询慢的方案解决
  5. MySQL 5.7 新特性详解
  6. android面试自定义view,资深面试官:自定义View的实现方式,你知道几种?
  7. r语言 xmlto html,R语言XML文件
  8. 两路服务器型号,两路服务器 核数
  9. android 扫描所有文件大小,Android获取指定文件大小
  10. c#如何通过ftp上传文件_ftp自动上传文件,如何设置ftp自动上传文件及环境配置...