通过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
相关文章:
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
如何做静态网页,sublimetext3.0制作静态网页?
制作网站的软件免费下载,免费制作app哪个平台好?
股票网站制作软件,网上股票怎么开户?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
如何高效利用亚马逊云主机搭建企业网站?
广东企业建站网站优化与SEO营销核心策略指南
建站之星安装后如何配置SEO及设计样式?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
建站之星官网登录失败?如何快速解决?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何在云服务器上快速搭建个人网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何在阿里云完成域名注册与建站?
如何快速生成橙子建站落地页链接?
如何在IIS7中新建站点?详细步骤解析
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何通过宝塔面板实现本地网站访问?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
如何通过建站之星自助学习解决操作问题?
太平洋网站制作公司,网络用语太平洋是什么意思?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
定制建站价位费用解析与套餐推荐全攻略
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
东莞专业制作网站的公司,东莞大学生网的网址是什么?
制作企业网站建设方案,怎样建设一个公司网站?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
制作网站的公司有哪些,做一个公司网站要多少钱?
c# 在ASP.NET Core中管理和取消后台任务
建站主机功能解析:服务器选择与快速搭建指南
如何在云指建站中生成FTP站点?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
家庭服务器如何搭建个人网站?
网站制作免费,什么网站能看正片电影?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
宝塔新建站点报错如何解决?
高端云建站费用究竟需要多少预算?
建站之星伪静态规则如何正确配置?
制作宣传网站的软件,小红书可以宣传网站吗?
建站主机是否属于云主机类型?
全景视频制作网站有哪些,全景图怎么做成网页?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
如何通过商城免费建站系统源码自定义网站主题?
*请认真填写需求信息,我们会在24小时内与您取得联系。