我在我的网站上使用 BJQS 滑块。
我也在同一个网站上使用fancybox。
我希望 BJQS 在fancybox 打开时暂停并在关闭时恢复。
有谁知道我如何为 BJQS 创建一个暂停/播放切换按钮?
谢谢
我在我的网站上使用 BJQS 滑块。
我也在同一个网站上使用fancybox。
我希望 BJQS 在fancybox 打开时暂停并在关闭时恢复。
有谁知道我如何为 BJQS 创建一个暂停/播放切换按钮?
谢谢
Came across this whilst trying add a play/pause button to the plugin. @Irvin Dominin's suggestion relating to hoverpause
is good but it will fail as soon as you hover the banners as the mouseover/mouseout is triggered.
I decided to extend the plugin with a new setting and turn off hoverpause
.
First add the setting to the defaults
object e.g.
// slider default settings
var defaults = {
enableplaypause: false // shows play/pause button
};
Next you'll want to set the click binding to your button, this is done in the init()
function e.g.
// run through options and initialise settings
var init = function () {
// configurations only avaliable if more than 1 slide
if (state.slidecount > 1) {
//enable play/pause button using setting we defined earlier
if (settings.enableplaypause) {
conf_enableplaypause();
}
}
};
Now for the conf_enableplaypause();
function which handles the state + button bindings:
var conf_enableplaypause = function () {
$('#btn').click(function () {
if (!state.paused) {
clearInterval(state.interval);
state.paused = true;
$('#btn').text('PAUSED');
} else {
state.interval = setInterval(function () {
go(vars.fwd, false);
}, settings.animspeed);
state.paused = false;
$('#btn').text('PLAYING');
}
});
};
Pretty straightforward and is essentially a copy of what hoverpause
does except on a button click along with updating the button text.
Hopefully this helps someone
fancybox 带有一些回调,因此您应该能够执行以下操作:
采用 Lee 和 Edwards 关于虚拟悬停的想法。
$(".fancybox").fancybox({
padding : 0,
openEffect : 'elastic',
closeEffect: 'elastic',
beforeLoad: function(){
$(".banner").trigger("mouseover");
},
afterClose: function(){
$(".banner").trigger("mouseout");
}
});
我检查了插件,但找不到任何暂停/播放滑块的方法。
我看到一个名为:
hoverpause : true, // 在悬停时启用/禁用暂停幻灯片
因此,我们可以通过触发滑块本身的过度状态以这种方式“破解”它:
var stopbjqs = false;
$(function () {
$('#dialog').bjqs({
'showmarkers': false,
'responsive': true,
'automatic': true
});
$("#btn").click(function () {
if (!stopbjqs) {
$("#dialog").trigger("mouseover");
stopbjqs=true;
} else {
$("#dialog").trigger("mouseout");
stopbjqs=false;
}
});
});
但是有一些方法来操纵滑块肯定会更好。
演示:http: //jsfiddle.net/IrvinDominin/P8UgQ/
无需编辑源文件以提供暂停滑块的方法,或添加可以隐藏并触发单击的按钮,最快的方法是触发导致滑块暂停的鼠标事件。
查看演示,您可以看到当您mouseover
滑动滑块时,滑块停止动画,直到您将鼠标移出它为止。因此,您可以模拟这些事件。
假设您的滑块 div#slider
就像 BJQS 网站上的演示,您会这样做:
在fancybox打开
$('#slider').trigger('mouseover');
在fancybox关闭
$('#slider').trigger('mouseout');
去这里: http: //fancybox.net/api看看如何定义打开/关闭回调(见第一个表底部附近,“on”选项)