Background colour change on rollover
-
Hi Marius
I began by adding the above code
CSS
.red {
background: #f1f1f1 !important;
}
.red:hover {
background-color: #ff1900 !important;
}
.blue {
background: #f1f1f1 !important;
}
.blue:hover {
background-color: #ff1900 !important;
}JQUERY
<script>
window.laytheme.on("newpage", function(layoutObj, type, obj){jQuery(document).on("hover", ".thumb",
function(event) {jQuery("body").removeClass("red"); jQuery("body").removeClass("blue"); jQuery("body").removeClass("yellow"); var category = jQuery(this).attr("data-catid"); if (category == 6) { jQuery("body").addClass("red"); } if (category == 3) { jQuery("body").addClass("blue"); } if (category == 5) { jQuery("body").addClass("yellow"); }
}
);
});
</script>as I said above this worked all be it the hover off only worked once the mouse had left the window not the thumbnail
I did attempt an example with mouseenter and mouseout in JSFIDDLE -
https://jsfiddle.net/Toby05/3yjw0dpk/15/#&togetherjs=9ISpwkHzla
HTML
<div class="box" data-catid="1">data-catid=1</div>
CSS
.box
JQUERY
$(document).ready(function(){
$(".box").mouseenter(function(){
$(this).css("background-color", "#ff1900");
});
$(".box").mouseleave(function(){
$(this).css("background-color", "#f1f1f1");
});
});but have been unsuccessful in applying more than one colour / category and adding to lay theme.
Cheers
Toby -
Hi Marius
I've managed to get some jquery working on JSFIDDLE but when I transferred the code into Layhtheme
it doesn't workhttps://jsfiddle.net/Toby05/va6a10g1/45/#&togetherjs=VIBsap8NEF
and here's the code i'm pasting into CUSTOM HEAD CONTENT:
<script>
window.laytheme.on("newpage", function(layoutObj, type, obj){
jquery(document).on ("mouseover", ".thumb",
function() {
var category = $(this).attr("data-catid");
if (category == 1)
jquery(this).css('background', "rgb(251,25,0)");
}).on("mouseout", function() {
jquery(this).css('background', "rgb(241,241,241)");
}).on("mouseover", function() {
var category = $(this).attr("data-catid");
if (category == 2)
jquery(this).css('background', "rgb(24, 176, 247)");
}).on("mouseout", function() {
jquery(this).css('background', "rgb(241,241,241)");
}).on("mouseover", function() {
var category = $(this).attr("data-catid");
if (category == 3)
jquery(this).css('background', "rgb(255,222,0)");
}).on("mouseout", function() {
jquery(this).css('background', "rgb(241,241,241)");
}).on ("mouseover",function() {
var category = $(this).attr("data-catid");
if (category == 4)
jquery(this).css('background', "rgb(115,195,19)");
}).on("mouseout", function() {
jquery(this).css('background', "rgb(241,241,241)");
});
</script>Thanks
Toby -
Hi @Toby
as far as I understood – you wanted that the background is changing to a specific color when you hover a category, right?
This is not happening in your example.
Are we talking about the same thing?
All the best!
Marius
-
Hi Marius
Yes that's what I want - unfortunately my attempts have been unsuccessful - can you help resolve this?
The previous post I'd attached the wrong JSFIDDLE - Here is my latest attempt
https://jsfiddle.net/Toby05/va6a10g1/67/#&togetherjs=y4rLV5GyyC
Thanks
Toby -
Dear @Toby
this is the way to go:
The code you just posted is already a step backward.
Please try this code and let me know where the problem is.
All the best!
Marius
@mariusjopen said in Background colour change on rollover:
Hi @Toby
add this to your CUSTOM HEAD CONTENT:
<script> window.laytheme.on("newpage", function(layoutObj, type, obj){ jQuery(document).on("hover", ".thumb", function(event) { jQuery("body").removeClass("red"); jQuery("body").removeClass("blue"); var category = jQuery(this).attr("data-catid"); if (category == 1) { jQuery("body").addClass("red"); } if (category == 2) { jQuery("body").addClass("blue"); } } ); }); </script>
and this to your custom CSS:
.red { background: red !important; } .blue { background: blue !important; }
I have two projects with two different categories.
If you inspect the thumbnails they are called 1 and 2:I placed the images as project thumbnails:
You will probably need to adjust the code.
But this is the base and you can go on from there.Good luck!
Marius
-
Hi Marius
As I explained last week when I add the above code there is no mouse leave effect when the mouse leaves the thumbnail to revert back to the original colour (#f1f1f1)
So I added this code to CSS - example for the red hover
.red {
background: #f1f1f1 !important;
}
.red:hover {
background-color: #ff1900 !important;
}Which nearly works, however the mouse leave doesn't revert back to #f1f1f1 until the mouse / pointer leaves the window - I'd like it to happen when the mouse leaves the thumbnail.
Any ideas
Cheers
Toby -
Dear Toby,
may I ask you to post the code in the
this format
to this thread. And also make it as readable as possible for me. Breaks etc.
Otherwise I need to do a surgery which costs a lot of time.Thank you
Marius
-
This post is deleted!
-
Hi Marius
Ok so far my code appears like this -
CUSTOM HEAD CONTENT:
<script> window.laytheme.on("newpage", function(layoutObj, type, obj){ jQuery(document).on("hover", ".thumb", function(event) { jQuery("body").removeClass("red"); jQuery("body").removeClass("blue"); var category = jQuery(this).attr("data-catid"); if (category == 1) { jQuery("body").addClass("red"); } if (category == 2) { jQuery("body").addClass("blue"); } } ); }); </script>
and CSS
.red { background: #f1f1f1!important; } .red:hover { background-color: #ff1900 !important; } .blue { background: #f1f1f1 !important; } .blue:hover { background-color: #0280f8 !important; }
but the hover only works when the mouse leaves the window not when leaving the thumbnail
Chers
Toby -
Dear @Toby
this works:
.red { background: red !important; } .blue { background: blue !important; }
<script> window.laytheme.on("newpage", function(layoutObj, type, obj){ jQuery(document).on("mouseenter", ".thumb", function(event) { var category = jQuery(this).attr("data-catid"); if (category == 1) { jQuery("body").addClass("red"); } if (category == 2) { jQuery("body").addClass("blue"); } }); jQuery(document).on("mouseleave", ".thumb", function(event) { jQuery("body").removeClass("red"); jQuery("body").removeClass("blue"); }); }); </script>
All the best!
Marius
-
Thank You Marius - Thats Great!
-
Perfect! Happy to hear!
23/25
Need custom programming for your Lay Theme site?
I regularly add new features to Lay Theme for free, based on user feedback. But if you or your client need something more specific, I’m happy to offer custom paid programming tailored to your project.
Email info@laytheme.com with the subject "Custom paid programming for Lay Theme" and a short description of what you need — I’ll reply with a cost estimate.
Custom features I build often make it into future Lay Theme updates, so your idea might benefit the whole community.
Before you post:
- When using a WordPress Cache plugin, disable it or clear your cache.
- Update Lay Theme and all Lay Theme Addons
- Disable all Plugins
- Go to Lay Options → Custom CSS & HTML, click "Turn Off All Custom Code", click "Save Changes"
This often solves issues you might run into
When you post:
- Post a link to where the problem is
- Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
- If the problem is difficult to explain, post screenshots / link to a video to explain it