问题
I have a div
and it contains elements like this:
<div class='anyClass' style='float:left'>
<ul class="slider_ctre" id="mycarousel">
<li class="outer_prdcts"><asp:HyperLink ID="hyp0" runat="server" NavigateUrl="http://192.168.20.120/tabid/62/Gifts+++Jewelery/HOuse+Of+Jamal+Attar/Jamal+Collection/0/SKU/1016-1637-2699-0/Default.aspx"><img class="prdct_img_blue" src="/Portals/_default/images/image_1.jpg" alt='' width='100' height='100' /></asp:HyperLink></li>
<li class="outer_prdcts"><asp:HyperLink ID="hyp1" runat="server" NavigateUrl="http://192.168.20.120/tabid/62/Gifts+++Jewelery/HOuse+Of+Jamal+Attar/Jamal+Collection/0/SKU/1016-1637-2699-0/Default.aspx"><img class="prdct_img_blue" src='/Portals/_default/images/image_2.jpg' alt='' width='100' height='100' /></asp:HyperLink></li>
<li class="outer_prdcts"><img class="prdct_img_blue" src='/Portals/_default/images/image_3.jpg' alt='' width='100' height='100' /></li>
<li class="outer_prdcts"><img class="prdct_img_blue" src='/Portals/_default/images/image_4.jpg' alt='' width='100' height='100' /></li>
<li class="outer_prdcts"><img class="prdct_img_blue" src='/Portals/_default/images/image_5.jpg' alt='' width='100' height='100' /></li>
<li class="outer_prdcts"><img class="prdct_img_blue" src='/Portals/_default/images/image_6.jpg' alt='' width='100' height='100' /></li>
</ul>
</div>
I am using jQuery jCarousel Lite to slide these images. My requirement is how can I stop its scrolling on mouseover?
jQuery is:
<script type='text/javascript' language='javascript'>
$(function() {
$('.anyClass').jCarouselLite({
btnNext: '.next',
btnPrev: '.prev',
auto: 200
});
});
</script>
回答1:
Apparently, jCarousel Lite does not offer the pause option.
There is a discussion here about making a modification to jCarousel Lite to add a pause option.
According to comments on the jCarousel Lite website, the modifications to the un-minified jcarousellite.js
file are as follows:
Add this to the list of options (under the o = $.extend({
line).
pause: false
Find this section:
if(o.auto)
setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
And replace it with this:
if(o.auto)
aktiv = setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
if(o.pause)
div.mouseover(function() {
clearInterval(aktiv);
});
div.mouseout(function() {
aktiv = setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
});
Within your jCarouselLite()
parameters, include it like this...
pause: true
回答2:
If you are on a page,
and if two or more runs jCarouselLite,
variables o need to explicitly add the extension object in aktiv.
o = $.extend({
aktiv: null,
pause: false
and aktiv changes o.aktiv
before code: aktiv
after code: o.aktiv
if(o.auto)
o.aktiv = setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
if(o.pause) {
div.mouseover(function() {
clearInterval(o.aktiv);
});
div.mouseout(function() {
o.aktiv = setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
});
}
finished :D
来源:https://stackoverflow.com/questions/8013595/autoslide-jquery-jcarousel-lite-not-working