jquery:在运行时创建/读取.css样式

时间:2012-01-23 19:37:56

标签: javascript jquery css stylesheet

我有一个应用程序,我正在使用jQuery + maphilight ,除了突出显示图像地图片段之外,我还想根据图像地图的鼠标悬停/鼠标移动事件动态突出显示某些HTML元素。

我知道如何做所有这些(只是对我想要突出显示的HTML元素的addClass和removeClass的适当调用)除了一件事。我想做以下任何一种情况:

  • 在运行时创建一个反映maphilight视觉设置(线条/填充样式+不透明度)的CSS样式
  • 设置maphilight插件以镜像我设置的CSS样式。

我更喜欢做后者并在.css文件中配置它,但目前我不知道如何做到。

任何人都可以帮助我吗?


编辑:我正在寻找一个答案,其中包括如何从jQuery maphilight插件中读取或编写样式,因为它没有太多文档。

1 个答案:

答案 0 :(得分:0)

它可能只会更改标题样式表。正确使用时,此技术更优越。它永远不应该取代适当的课堂作业。

var renderDropArea = function(renderMe) {
  var dropSheet = document.getElementById('dropAllowedDisplay');
  if (renderMe) {
    // IE 7 & 8
    if (dropSheet.styleSheet) {
      dropSheet.styleSheet.addRule('.dropAllowedHead','background-color:#72F193;');
      dropSheet.styleSheet.addRule('.dropAllowed','background-color:#72F193;');
    } else {
      document.getElementById('dropAllowedDisplay').innerHTML =
        ".dropAllowedHead { background-color:#72F193; } .dropAllowed { background-color:#72F193; }";
    }
  } else {
    // IE 7 & 8
    if (dropSheet.styleSheet) {
      if (dropSheet.styleSheet.rules.length) {
        dropSheet.styleSheet.removeRule(0);
        dropSheet.styleSheet.removeRule(0);
          }
    } else {
      document.getElementById('dropAllowedDisplay').innerHTML = '';
    }   
      }
}