javascript - Raphael Canvas 覆盖 css

标签 javascript css html raphael

我正在使用 Raphael 创建基于矢量的 map 。 map 很大,所以我使用 RaphaelZPD 允许缩放和平移,同时将图像适合较小的框架。我使用 html5 创建了一个 div 集作为一个带有圆 Angular 的表格单元格和 css 文件中设置的一些插入框阴影。我已经将我的 Raphael Canvas 标识为与 div 相同,虽然它可以很好地加载,但可以正确显示所有图形,所有动画元素都可以正常工作,保持在边界内等。还有一个小问题。 SVG 覆盖了 css 中设置的圆 Angular 和 inset box-shadow 属性。所以我得到的不是圆 Angular 而是尖 Angular 。如果我平移 map 以便没有 Raphael 生成的图形覆盖 Angular ,则圆 Angular 会再次出现。阴影也是如此。

那么有没有办法让js留在这些效果后面呢?或者我应该尝试通过创建倒圆 Angular 作为保留在顶层的绝对元素来绕过它而忘记阴影吗?

我希望我清楚我的问题,获得了一周的编程经验,所以我的术语仍然有点不稳定。

http://jsfiddle.net/cgnrh/4/ <- 有练习图片,也很乱

#map {
  display: table-cell;
  position: absolute;
  margin-top: 104px;
  margin-left: 350px;
  border-radius: 0 2em 2em 0;
  box-shadow: inset 3px 0 7px #777;
  width: 550px;
  height: 900px;
  background: #FFFFFF;
}

var paper = Raphael('map');

最佳答案

我在你的 map div 周围包裹了一个 div:

<div id="frame">
  <div id="map">
  </div>
</div>

然后我将#map 上的位置从绝对位置更改为相对位置,并为框架添加了样式:

#frame {
  position: relative;
  top: 104px;
  left: 350px;
  overflow:hidden;
  border-radius: 0 2em 2em 0;
}

通过将圆 Angular 应用于包装 div 并 overflow hidden ,它在 map 图像上创建了圆 Angular 。我相信你的假设是正确的,Raphael SVG 正在渲染正在绘制的 div 的效果,所以你只需要用周围的 div 来约束它。将位置从绝对位置更改为相对位置并在包装 div 上使用定位对于将其布局在与之前相同的位置是必要的。我不认为你将能够实现插入框阴影。

http://jsfiddle.net/9w2ub/

关于javascript - Raphael Canvas 覆盖 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6288326/

相关文章:

javascript - Google Api - 单独对象 - JavaScript

css - 不使用 SASS 编辑原始 CSS 样式表

ajax - 当您浏览页面时,Facebook 的聊天窗口如何保持打开状态并保持在同一个位置

javascript - 在 android 中使用 chrome 的移动设备中,当我向下滚动模式并且地址栏消失时,底部出现空白

javascript - jQuery - 无法同时使用导入的文件和自己的函数

javascript - TypeError : <. ..> 不是一个函数

javascript - 如何在pcolumn prime ng数据表中使用嵌套数组

css - 编辑与一个 id 相关的所有 CSS 规则

javascript - 如何使整个td成为一个链接?

javascript - Accordion 的 `aria-role` 应该是什么?在可访问性检查期间,我的 Accordion 被读取为按钮,这可能会使用户感到困惑