js操作创建和操作外部样式的例子
兼容IE8及以上的IE浏览器
1. [代码][HTML]代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="test"></div>
</body>
<script src="../lib/jquery-1.8.3.min.js"></script>
<script>
/*
* 火狐无 addRule,低版本IE无insertRule,insertRule是w3c标准
* 此处insertRule -> addRule的代码是因为inserterRule只有
*2个参数。2个参数转成3个参数状况比较多
*/
if(!CSSStyleSheet.prototype.insertRule){
CSSStyleSheet.prototype.insertRule = function(style, index){
if(!style){
return;
}
var style = style.split("{");
if(style.length<2){
return;
}
this.addRule(style[0], style[1].split("}")[0], index);
}
}
/*
* 火狐无 removeRule,低版本IE无deleteRule
* deleteRule是w3c标准音效网
*/http://www.huiyi8.com/yinxiao/
if(!CSSStyleSheet.prototype.deleteRule){
CSSStyleSheet.prototype.deleteRule = function(index){
this.removeRule(index);
}
}
/**
* 创建一个外部样式表
*/
function sheet(appendTo){
var style = document.createElement("style");
style.type = 'text/css';
appendTo ? appendTo.append(style) : $("body").append(style);
return style.sheet ? style.sheet : style.styleSheet;
}
var sheet = new sheet();
sheet.insertRule("#test{width:100px;height:100px;background:red;border:5px solid green;}", 0);
sheet.insertRule("#test{position:absolute;}", 1);
sheet.insertRule("#test{position:absolute;}", 2);
var mouseDown = false;
var position;
var style;
var target = $("#test");
var x,y;
var rule;
$("#test").mousedown(function(e){
mouseDown = true;
x = e.clientX;
y = e.clientY;
position = target.position();
}).mousemove(function(e){
if(mouseDown == true){
rule = sheet.cssRules ? sheet.cssRules[2] : sheet.rules[2];
rule.style.top = (position.top + e.clientY - y) + "px";
rule.style.left = (position.left + e.clientX - x) + "px";
}
}).mouseup(function(){
mouseDown = false;
});
</script>
</html>
js操作创建和操作外部样式的例子的更多相关文章
- Gremlins.js – 模拟用户随机操作的 JS 测试库
Gremlins.js 是基于 JavaScript 编写的 Monkey 测试库,支持 Node.js 平台和浏览器中使用.Gremlins.js 随机模拟用户操作:单击窗口中的任意位置,在表格中输 ...
- JS与PHP数组操作的不同
JS与PHP数组操作的不同 1.JS 中向数组中添加元素,必须指定下标 2.php中向数组中添加元素,可以不指定下标(追加) 3.JS 中数组元素的下标,是连续 4.PHP中数组元素的下标,可以不连续 ...
- js中的DOM操作汇总
一.DOM创建 DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性.DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: Element,元素 Attrib ...
- jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象
这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...
- js实现链式操作
前言:前不久阿里远程面试时问了我一个问题,如下: function Person(){}; var person = new Person(); //实现person.set(10).get()返回2 ...
- JS之document对象(找元素、操作内容、操作属性、操作样式及4道例题)
document对象 一.找元素 1.根据id找 示例: <input id = "a" type="button" value="找元素&qu ...
- js基础总结01 --操作DOM
1.选择对象 通过id来选择绑定一个dom节点 :document.getElementById('p1'): 通过类名来绑定一个类数组的对象集合,:document.getElementsByCla ...
- 1 js中常用的操作
总结一些前端js常用的操作 常用日期操作:前端开发常用 JS 方法 js中array.list.map的遍历:js遍历集合(Array,Map,Set) js中对象的定义:js创建自定义对象的几种方式 ...
- day45:JS中的json&JS的BOM操作和DOM操作
目录 1.补充:CSS中的弹性盒子 2.JS中json的序列化 3.JS中的BOM操作 3.1 location操作 3.2 计时器 4.JS中的DOM操作 4.1 创建标签 4.2 查找标签 4.3 ...
随机推荐
- Log4j2异步情况下怎么防止丢日志的源码分析以及队列等待和拒绝策略分析
org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor以下所有源码均在此类中首先我们看下log4j2异步队列的初始化 从这里面我们 ...
- angular中关于自定义指令——repeat渲染完成后执行动作
业务中有时需要在异步获取数据并用ng-repeat遍历渲染完页面后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己动手写.有经验的同学都应该知道,在ng-r ...
- 一个关于 jquery 和 php 的 jsonp 例子(与后台PHP成功通信)
<script> $(document).ready(function(){ $.ajax({ url:'http://localhost/test/jsonp.php', dataTyp ...
- Java 并发编程中的 CountDownLatch 锁用于多个线程同时开始运行或主线程等待子线程结束
Java 5 开始引入的 Concurrent 并发软件包里面的 CountDownLatch 其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是 ...
- 关于RPi.GPIO、BCM2835 c library、WiringPi、Gertboard
1.RPi.GPIO//RPi.GPIO-0.5.5.tar.gz 开发者:python官网:https://www.python.org/ 官网:https://pypi.python.org/py ...
- springBoot 跨域处理
首先喝水不忘挖井人,博客参考:https://www.cnblogs.com/nananana/p/8492185.html 方式一:新增一个configration类 或 在Application中 ...
- “ORA-01747: user.table.column, table.column 或列说明无效” 的解决方案
此问题的原因是因为表的列名称使用了Oracle声明的关键字,列名起的不好引起的. 如果列很多,又不好确定是哪个列名使用了关键字,以下建议可供参考: select * from v$reserved_w ...
- android 获得屏幕状态
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- es删除文档或者删除索引
es删除文档或者删除索引 学习了:https://www.imooc.com/video/15771 删除文档: DELETE http://127.0.0.1:9200/people/man/1 删 ...
- 百科知识 手机QQ的视频如何保存
手机QQ上打开一个视频,然后进入播放界面,然后暂停播放 点击右上角的按钮,就可以保存到手机