我不知道该怎么称呼它,我能想到的只是一个转发器按钮。
我想按一个按钮,它立即触发一次功能,例如MyZoom(InOrOut)。
但是,如果我按下鼠标按钮,它将持续每隔十分之一秒触发MyZoom(InOrOut),直到我释放鼠标按钮。
正如您可以从功能名称中猜到的那样,我将有2个按钮,一个放大和一个缩小。他们将调用MyZoom(-1)使其变小,并调用MyZoom(1)使其变大。
<button onclick="MyZoom(-1);">Zoom Out</button>
<button onclick="MyZoom(1);">Zoom In</button>
如何更改此项以包含重复效果?
答案 0 :(得分:2)
使用onmousedown
和onmouseup
事件。
在onmousedown
开始一个时间间隔并在onmouseup
中停止。
这是使用jQuery的一个小例子:
<强> HTML:强>
<button class="zoomButton" data-zoom="out">Zoom Out</button>
<button class="zoomButton" data-zoom="in">Zoom In</button>
<强> JavaScript的:强>
var zoomIntervals = {};
$('.zoomButton').on('mousedown', function() {
var mode = $(this).data('zoom');
zoomIntervals[mode] = setInterval(function() {
// here you perform your action.
// check if mode == 'in' or mode == 'out' to determine if
// the user is zooming in or out
}, 100);
}).on('mouseup', function() {
var mode = $(this).data('zoom');
clearInterval(zoomIntervals[mode]);
del zoomIntervals[mode];
});
如果您不想(想)使用jQuery,请使用addEventListener()
注册事件并直接访问数据属性(与旧浏览器不兼容)或使用例如用于标识按钮的ID属性。
答案 1 :(得分:1)