Solved

Change  Mouseenter to permanent visibility

Posted on 2010-08-25
7
463 Views
Last Modified: 2012-08-13
Hello, all.

I have a script that was available on the net for a fading slideshow.  All is working fine.

I just want to tweak it one little bit.

The slideshow displays images in a fading manner.  When the mouse enters the image area, a caption slides up from the bottom, and then it disappears when leaving the image area.

I would like the caption to remain on all the time.

I will attach the .js file.


I noticed in the script, around line 76-ish, that there are 3 lines of code that seemed relevant:
                  else if (setting.descreveal=="ondemand"){ //display desc panel on demand (mouseover)
                        setting.$wrapperdiv.bind('mouseenter', function(){slideshow.showhidedescpanel('show')})
                        setting.$wrapperdiv.bind('mouseleave', function(){slideshow.showhidedescpanel('hide')})
                  }


I see the "mouseenter" and "mouseleave" lines.  I altered the "mouseleave" to "SHOW" when the mouse left the image, and that worked fine.

My main question is... is there some other handler (not sure what it's called) that could replace "mouseenter" so the caption would be on all the time.  I tried removing the "mouseleave" line and removing the "mouseenter" portion to only have the function to "show" the panel, but that did not work.

The file is attached for context.

That little block of code seems to be where the action is for that feature, but being a Javascript amateur, I'm not sure how to make it permanently visible.

Your help is always appreciated.

Thanks,
Shane
fadeslideshow.js
0
Comment
Question by:lshane
7 Comments
 
LVL 40

Expert Comment

by:gurvinder372
ID: 33528245
try doing the same thing at mouseleave also
i.e.

 else if (setting.descreveal=="ondemand"){ //display desc panel on demand (mouseover)
                        setting.$wrapperdiv.bind('mouseenter', function(){slideshow.showhidedescpanel('show')})
                        setting.$wrapperdiv.bind('mouseleave', function(){slideshow.showhidedescpanel('show')})
                  }

0
 

Author Comment

by:lshane
ID: 33528294
Hi, gurvinder372.

Yeah, I tried that one before.  It definitely keeps the caption visible... AFTER it slides up from the bottom, and it remains visible when leaving the area, and when it goes to the next slide without a caption.

I was just thinking that "mouseenter" could be replaced with something like "always", or something like that.  I am truly shooting in the dark.  I would think this little area is where the tweak would take place, but I'm not versed enough in Javascript to really parse the code effectively.

Any other ideas?
0
 
LVL 40

Expert Comment

by:gurvinder372
ID: 33528311
or else you can do some thing simpler

setting.$wrapperdiv.mouseover(function() {
  slideshow.showhidedescpanel('show');
});

check this
http://api.jquery.com/mouseover/
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 2

Accepted Solution

by:
eoindevery earned 500 total points
ID: 33528324
Replace

else if (setting.descreveal=="ondemand"){ //display desc panel on demand (mouseover)
                        setting.$wrapperdiv.bind('mouseenter', function(){slideshow.showhidedescpanel('show')})
                        setting.$wrapperdiv.bind('mouseleave', function(){slideshow.showhidedescpanel('hide')})
                  }


with

else if (setting.descreveal=="ondemand"){ //display desc panel on demand (mouseover)
                        slideshow.showhidedescpanel('show')})
}


The script has some settings that can be tweaked in the html file by the looks of it. There is a setting
    setting.descreveal="always";
which should be set to if you want the description to always be visible.

Something like:

var mySlideshow=new fadeSlideShow("descreveal":"always");

in the HEAD section of the page.


0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 33528664
that would likely be


var mySlideshow=new fadeSlideShow({"descreveal":"always"});

0
 

Author Closing Comment

by:lshane
ID: 33531446
Perfect.
0
 

Author Comment

by:lshane
ID: 33531459
Thank you, eoindevery.

I would not have thought it would have been in the HEAD section.

I found it and changed from "ondemand" to "always" = Worked perfectly.


Thank you!
Shane
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Today I would like to talk about localizing (Internationalization) JavaScript applications. Introduction When creating an application that is going to be used by many people around the globe, it is important to remember that not everyone speak…
In this article, we'll look how to sort an Array in JavaScript, including the more advanced techniques of sorting a collection of records either ascending or descending on two or more fields. Basic Sorting of Arrays First, let's look at the …
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now