我创建了一个基本的 turn.js 翻书。当我单击链接元素 ( #clickme
) 时,我想模拟用户在剥离时单击 ( ) 并在翻页后mousedown
释放 ( ) 的屏幕动画。mouseup
到目前为止,这是我的代码:
$("#flipbook").turn({
width: 700*2,
height: 938,
'display': 'double',
duration: 3000
});
//Create two empty span elements over the peel start and end points
var rect = document.getElementById("flipbook").getBoundingClientRect();
$("#flipStart").css("top", rect.bottom - 50);
$("#flipStart").css("left", rect.right - 50);
$("#flipEnd").css("top", rect.bottom - 50);
$("#flipEnd").css("left", rect.left);
//Simulate the flip with click
$("#clickme").click(function() {
var targetNode1 = document.getElementById("flipStart");
var targetNode2 = document.getElementById("flipEnd");
if (targetNode1) {
triggerMouseEvent (targetNode1, "mouseover");
triggerMouseEvent (targetNode1, "mousedown");
}
if (targetNode2) {
triggerMouseEvent (targetNode2, "mouseover");
triggerMouseEvent (targetNode2, "mouseup");
triggerMouseEvent (targetNode2, "click");
}
else
console.log ("*** Target node not found!");
function triggerMouseEvent (node, eventType) {
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent (eventType, true, true);
node.dispatchEvent (clickEvent);
}
});
当我运行它时,没有任何反应。我认为该mousedown
事件没有被触发,但mouseup
确实如此。有人知道我做错了什么吗?
这是HTML:
<body style="overflow: hidden">
<div id="clickme"><a href="#">Click</a></div>
<div id="flipbook" style="margin: auto; position: absolute">
<div id="page1"><p>Page 1</p></div>
<div id="page2"><p>Page 2</p></div>
<div id="page3"><p>Page 3</p></div>
<div id="page4"><p>Page 4</p></div>
<div id="page5"><p>Page 5</p></div>
</div>
<div id="flipStart" style="position:absolute"><span style="display:block; width: 50px; height: 50px; margin: auto; z-index: 90;"></span> </div>
<div id="flipEnd" style="position: absolute"><span style="display: block; width: 50px; height: 50px; margin: auto; z-index: 90"></span> </div>
</body>