我希望用javascript实现,比如当我碰上任何缩略图(btn-1,btn-2和btn-3)时,特定的类应该动态添加到box div。
我的代码:JSFiddle
document.getElementById('btn-1').onclick = function() {
document.getElementById('box').className = 'bg-1';
}

#box {
background-color: darkgray;
width: 200px;
height: 200px;
}
.thumbnail {
width: 30px;
height: 30px;
border: 1px solid;
margin: 5px;
position: relative;
float: left;
}
#btn-1 {
background-color: red;
}
#btn-2 {
background-color: green;
}
#btn-3 {
background-color: blue;
}
.bg-1 {
background-color: red;
}
.bg-2 {
background-color: blue;
}
.bg-3 {
background-color: blue;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box"></div>
<div class="thumbnail" id="btn-1"></div>
<div class="thumbnail" id="btn-2"></div>
<div class="thumbnail" id="btn-3"></div>
&#13;
答案 0 :(得分:1)
你的javascript正在运行,但你的CSS却没有。
你需要在.bg-1,.bg-2和.bg-3
中添加!important如下.bg-1 {
background-color: red !important;
}
否则id样式优先于类样式
如果右键单击灰色div并在Chrome中选择inspect元素,则可以看到正在添加类名。
答案 1 :(得分:0)
您想使用jquery .addClass()函数:
$('.myButton').addClass('myNewClass');
该功能可能如下所示:
$(function () {
$('.thumbnail').click(function() {
$('#box').addClass($(this).attr('id'));
});
})
答案 2 :(得分:0)
您可以将所有缩略图作为数组获取,然后遍历数组并动态地向每个缩略图添加一个事件侦听器,这将在单击时将所需的className添加到框中:
var thumbnails = document.getElementsByClassName('thumbnail');
Array.from(thumbnails).forEach(function(thumbnail) {
var id = thumbnail.id;
thumbnail.addEventListener('click', function() {
document.getElementById('box').className = id.replace('btn', 'bg')
});
});
答案 3 :(得分:0)
不要使用课程,只需使用data-
属性,例如:data-bg="#f00"
$('[data-bg]').css('background', function () {
$(this).on('click', () => $('#box').css('background', this.dataset.bg));
return this.dataset.bg;
});
#box {
background: darkgray;
width: 120px; height: 120px;
}
[data-bg] {
width: 30px; height: 30px;
margin: 5px;
float: left;
}
<div id="box"></div>
<div data-bg="red"></div>
<div data-bg="#00f"></div>
<div data-bg="rgb(255,0,180)"></div>
<div data-bg="linear-gradient(to right, #E100FF, #7F00FF)"></div>
<script src="//code.jquery.com/jquery-3.1.0.js"></script>