通过style属性设置背景图案
<!--html--> <div id="change"> change color </div>
/*css*/
#change {
border: 1px solid black;
width: 200px;
height: 200px;
text-align: center;
line-height: 200px;
}
//js change.style.backgroundColor="purple";
在侧边栏设置一个颜色选择器,将change的背景颜色设置为选择的颜色,此时颜色选择器的颜色是使用内联样式的方式添加的。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css</title>
<style>
* {
margin: 0;
padding: 0;
}
.wrap {
width: 220px;
height: 200px;
position: absolute;
top: 300px;
left: -172px;
}
.open-close {
height: 45px;
width: 48px;
background: url("open-close.png") no-repeat;
background-size: contain;
border: 1px solid grey;
border-left: none;
position: absolute;
top: 0;
right: 0;
z-index: 2;
}
.changer {
height: 150px;
width: 170px;
position: absolute;
top: 0;
left: 0;
border: 1px solid grey;
text-align: center;
padding-top: 8px;
}
.list > li {
display: block;
width: 36px;
height: 36px;
float: left;
margin-left: 9%;
margin-top: 10%;
}
#change {
border: 1px solid black;
width: 200px;
height: 200px;
text-align: center;
line-height: 200px;
}
</style>
</head>
<body>
<div class="wrap" id="wrap">
<!--html-->
<div class="open-close" id="open"></div>
<div class="changer">
<span>颜色选择器</span>
<ul class="list">
<li class="color-orange" style="background-color: orange"></li>
<li class="color-red" style="background-color: red"></li>
<li class="color-blue" style="background-color: blue"></li>
<li class="color-black" style="background-color: black"></li>
<li class="color-green" style="background-color: green"></li>
<li class="color-pink" style="background-color: pink"></li>
</ul>
</div>
</div>
<div id="change">
change color
</div>
<script>
var open = document.getElementById("open");
var wrap = document.getElementById("wrap");
var list = document.getElementById("list");
var change = document.getElementById("change");
var color_change = document.getElementsByTagName("li");
change.style.backgroundColor = "purple";
open.onmouseover = function () {
wrap.style.left = 0 + "px";
};
open.onclick = function () {
wrap.style.left = -172 + "px";
};
for (var i = 0; i < color_change.length; i++) {
color_change[i].id = i;
color_change[i].onclick = function () {
change.style.backgroundColor = color_change[this.id].style.backgroundColor;
}
}
</script>
</body>
</html>
问题:
当颜色选择器的颜色是使用嵌入式或者外部引入的方式添加时,javascript的style属性无效,获取不到颜色值。
解决方法:
javascript的style属性只能获取内联样式,对于外部引入样式和嵌入式样式需要用currentStyle属性。但是,currentStyle在Firefox和Chrome下不支持,需要使用如下兼容性代码:
HTMLElement.prototype.__defineGetter__("currentStyle", function () {
return this.ownerDocument.defaultView.getComputedStyle(this, null);
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
}
.wrap {
width: 220px;
height: 200px;
position: absolute;
top: 300px;
left: -172px;
}
.open-close {
height: 45px;
width: 48px;
background: url("open-close.png") no-repeat;
background-size: contain;
border: 1px solid grey;
border-left: none;
position: absolute;
top: 0;
right: 0;
z-index: 2;
}
.changer {
height: 150px;
width: 170px;
position: absolute;
top: 0;
left: 0;
border: 1px solid grey;
text-align: center;
padding-top: 8px;
}
.list > li {
display: block;
width: 36px;
height: 36px;
float: left;
margin-left: 9%;
margin-top: 10%;
}
.color-orange {
background-color: orange;
}
.color-red {
background-color: red;
}
.color-blue {
background-color: blue;
}
.color-blank {
background-color: black;
}
.color-green {
background-color: green;
}
.color-pink {
background-color: pink;
}
#change {
border: 1px solid black;
width: 200px;
height: 200px;
text-align: center;
line-height: 200px;
}
</style>
</head>
<body>
<div class="wrap" id="wrap">
<!--html-->
<div class="open-close" id="open"></div>
<div class="changer">
<span>颜色的选择</span>
<ul class="list">
<li class="color-orange"></li>
<li class="color-red"></li>
<li class="color-blue"></li>
<li class="color-blank"></li>
<li class="color-green"></li>
<li class="color-pink"></li>
</ul>
</div>
</div>
<div id="change">
change color
</div>
<script>
HTMLElement.prototype.__defineGetter__("currentStyle", function () {
return this.ownerDocument.defaultView.getComputedStyle(this, null);
});
var open = document.getElementById("open");
var wrap = document.getElementById("wrap");
var list = document.getElementById("list");
var change = document.getElementById("change");
var color_change = document.getElementsByTagName("li");
change.style.backgroundColor="purple";
open.onmouseover = function () {
wrap.style.left = 0 + "px";
};
open.onclick = function () {
wrap.style.left = -172 + "px";
};
for (var i = 0; i < color_change.length; i++) {
color_change[i].id = i;
color_change[i].onclick = function () {
change.style.backgroundColor = color_change[this.id].currentStyle.backgroundColor;
}
}
</script>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# javascript获取样式
# javascript
# 嵌入式样式
# javascript获取内联样式
# 嵌入式C实战项目开发技巧:对一个有规律的数组表进行位移操作的方法
# 嵌入式项目使用C语言结构体位段特性实现断言宏校验数据范围有效性的方法
# JS实现PC手机端和嵌入式滑动拼图验证码三种效果
# JavaScript基本的输出和嵌入式写法教程
# javascript动态添加样式(行内式/嵌入式/外链式等规则)
# 嵌入式C语言查表法在项目中的应用
# 选择器
# 不支持
# 设置为
# 解决方法
# 需要用
# 大家多多
# UTF
# br
# title
# head
# purple
# en
# lang
# DOCTYPE
# charset
# meta
# left
# close
# open
# top
相关文章:
学校免费自助建站系统:智能生成+拖拽设计+多端适配
建站与域名管理如何高效结合?
企业微网站怎么做,公司网站和公众号有什么区别?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
无锡营销型网站制作公司,无锡网选车牌流程?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
建站主机是否等同于虚拟主机?
建站168自助建站系统:快速模板定制与SEO优化指南
如何选择高效可靠的多用户建站源码资源?
浅析上传头像示例及其注意事项
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
nginx修改上传文件大小限制的方法
建站之星北京办公室:智能建站系统与小程序生成方案解析
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
如何通过主机屋免费建站教程十分钟搭建网站?
C#如何序列化对象为XML XmlSerializer用法
如何选择适配移动端的WAP自助建站平台?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
如何在阿里云虚拟主机上快速搭建个人网站?
,巨量百应是干嘛的?
如何有效防御Web建站篡改攻击?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
个人摄影网站制作流程,摄影爱好者都去什么网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
微信小程序 五星评分(包括半颗星评分)实例代码
设计网站制作公司有哪些,制作网页教程?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
建站主机解析:虚拟主机配置与服务器选择指南
如何在阿里云部署织梦网站?
如何构建满足综合性能需求的优质建站方案?
网站制作新手教程,新手建设一个网站需要注意些什么?
Python多线程使用规范_线程安全解析【教程】
建站之星在线版空间:自助建站+智能模板一键生成方案
如何在建站之星绑定自定义域名?
建站之星如何防范黑客攻击与数据泄露?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
自助网站制作软件,个人如何自助建网站?
小型网站制作HTML,*游戏网站怎么搭建?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
网站专业制作公司有哪些,做一个公司网站要多少钱?
如何快速重置建站主机并恢复默认配置?
如何选择建站程序?包含哪些必备功能与类型?
网站制作的步骤包括,正确网址格式怎么写?
公司网站的制作公司,企业网站制作基本流程有哪些?
中山网站推广排名,中山信息港登录入口?
如何用wdcp快速搭建高效网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。