Please tell me how can I make this in the most right way.
HTML:
<div id="fixed-red" class="fixed-red"></div>
<div id="fixed-green" class="fixed-green"></div>
<div id="fixed-blue" class="fixed-blue"></div>
<div id="red" class="red"></div>
<div id="green" class="green"></div>
<div id="blue" class="blue"></div>
CSS:
html,body{
height:100%;
}
.fixed-red,.fixed-green,.fixed-blue{
width:30px;
height:30px;
position:fixed;
top:10px;
left:10px;
background:#333;
}
.fixed-green{
top:50px;
}
.fixed-blue{
top:90px;
}
.red-active{
background:#f00;
}
.green-active{
background:#0f0;
}
.blue-active{
background:#00f;
}
.red,.green,.blue{
width:100%;
height:100%;
}
.red{
background:#900;
}
.green{
background:#090;
}
.blue{
background:#009;
}
I want to add/remove red/green/blue-active
class to the fixed-red/green/blue
divs when the user is on/off the red
, green
, or blue
divs(when they are visible), so the small divs would be respectively highlighted with the color of the big, display divs when the user is on them.
Thanks!
To change the background color of the button, use the CSS background-color property and give it a value of a color of your taste. In the . button selector, you use background-color:#0a0a23; to change the background color of the button.
The default background color of a div is transparent . So if you do not specify the background-color of a div, it will display that of its parent element.
You will have to place the div disabler on top of the table. You can do so by absolutely positioning the div . I added a new div, tableContainer enveloping the disabler div and the table, and absolutely positioning the div.
I had to tweak the code a little so the code could be more D.R.Y.
The classes are now replaced by color
class.
$.fn.isInViewport = function() {
var elementTop = $(this).offset().top;
var elementBottom = elementTop + $(this).outerHeight();
var viewportTop = $(window).scrollTop();
var viewportBottom = viewportTop + $(window).height();
return elementBottom > viewportTop && elementTop < viewportBottom;
};
$(window).on('resize scroll', function() {
$('.color').each(function() {
var activeColor = $(this).attr('id');
if ($(this).isInViewport()) {
$('#fixed-' + activeColor).addClass(activeColor + '-active');
} else {
$('#fixed-' + activeColor).removeClass(activeColor + '-active');
}
});
});
html,
body {
height: 100%;
}
.fixed-red,
.fixed-green,
.fixed-blue {
width: 30px;
height: 30px;
position: fixed;
top: 10px;
left: 10px;
background: #333;
}
.fixed-green {
top: 50px;
}
.fixed-blue {
top: 90px;
}
.red-active {
background: #f00;
}
.green-active {
background: #0f0;
}
.blue-active {
background: #00f;
}
.color {
width: 100%;
height: 100%;
}
#red {
background: #900;
}
#green {
background: #090;
}
#blue {
background: #009;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="fixed-red" class="fixed-red red-active"></div>
<div id="fixed-green" class="fixed-green"></div>
<div id="fixed-blue" class="fixed-blue"></div>
<div id="red" class="color"></div>
<div id="green" class="color"></div>
<div id="blue" class="color"></div>
Here is a working fiddle of that
https://jsfiddle.net/BoyWithSilverWings/ds9x55z7/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With