Javascript代码在Safari浏览器中不起作用

时间:2019-05-17 07:22:46

标签: javascript safari

我有适用于Google crome,firefox等的代码,但不适用于Safari浏览器。

什么代码呢?隐藏/显示徽标取决于固定元素的位置-它可以工作,但在Safari中徽标只是隐藏的。

Safari是否支持某些功能?

<svg></svg>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script>
  //svg canvas
  var svgCanvas = d3.select("svg")
    .attr("width", 1000)
    .attr("height", 650)
    .attr("class", "svgCanvas");


  var data = {
    "nodes": [{
        "id": "site09",
        "x": 317.5,
        "y": 282.5
      },
      {
        "id": "site01",
        "x": 112,
        "y": 47
      },
      {
        "id": "site02",
        "x": 42,
        "y": 147
      },
      {
        "id": "site05",
        "x": 212,
        "y": 95
      },
      {
        "id": "site08",
        "x": 10,
        "y": 200
      }
    ],
    "links": [{
        "node01": "site05",
        "node02": "site08"
      },
      {
        "node01": "site05",
        "node02": "site02"
      }
    ]
  };

  data.links.forEach(function(d) {
    var node1 = data.nodes.find(function(e) {
      return e.id === d.node01
    });
    var node2 = data.nodes.find(function(e) {
      return e.id === d.node02
    });
    d.x1 = node1.x;
    d.x2 = node2.x;
    d.y1 = node1.y;
    d.y2 = node2.y;
  })

  // nodes
  svgCanvas.selectAll("circle")
    .data(data.nodes)
    .enter()
    .append("circle")
    .attr("cx", function(d) {
      return d.x;
    })
    .attr("cy", function(d) {
      return d.y;
    })
    .attr("r", 10)
    .style("fill", "#69b3a2")
  // links
  svgCanvas.selectAll("line")
    .data(data.links)
    .enter()
    .append("line")
    .attr("x1", function(d) {
      return d.x1;
    })
    .attr("y1", function(d) {
      return d.y1;
    })
    .attr("x2", function(d) {
      return d.x2;
    })
    .attr("y2", function(d) {
      return d.y2;
    })
    .style("stroke", "#aaa")

</script>

1 个答案:

答案 0 :(得分:0)

完成了。

更改:

$window.on('scroll', function() { 
                var scrollTop = document.documentElement.scrollTop; 

收件人:

$(window).scroll(function() { 
                var scrollTop = $(window).scrollTop();