- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前幻灯片内 zomm 的快捷键是 Alt + 单击
// Custom reveal.js integration
(function(){
var isEnabled = true;
document.querySelector( '.reveal .slides' ).addEventListener( 'mousedown', function( event ) {
var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
var zoomPadding = 20;
var revealScale = Reveal.getScale();
if( event[ modifier ] && isEnabled ) {
event.preventDefault();
var bounds = event.target.getBoundingClientRect();
zoom.to({
x: ( bounds.left * revealScale ) - zoomPadding,
y: ( bounds.top * revealScale ) - zoomPadding,
width: ( bounds.width * revealScale ) + ( zoomPadding * 2 ),
height: ( bounds.height * revealScale ) + ( zoomPadding * 2 ),
pan: false
});
}
} );
我应该如何将 Alt + 鼠标单击更改为仅按“z”键?主文件为:https://github.com/hakimel/reveal.js/blob/master/plugin/zoom-js/zoom.js
干杯,阿纳尔多。
最佳答案
您可以通过检查幻灯片的 mousemove 事件来实现此目的。这将用于跟踪按下“z”时鼠标最后所处的位置。然后,您还需要更新定义的键绑定(bind),这样每当您按“z”时(keyDown 事件都会触发调用 reveal.js
中的 onDocumentKeyDown
函数>) 网页放大该元素。
虽然我已经测试了下面的内容并发现它有效,但我应该补充一点,我不是一个经常使用 JavaScript 的程序员。我使用的是全局变量,许多脚本和编程语言都普遍认为这是一件坏事。
在zoom.js
中添加:
var bbox_elm_below_mouse; // keeps track of the mouselocation
(function(){
document.querySelector( '.reveal .slides' ).addEventListener('mousemove', function(event){
bbox_elm_below_mouse = event.target;
})
})(); // Update the global var any time the mouse moves.
function initiateZoom(){
// based on the function on the function at the top in reveal.js's modification to zoom.js
var isEnabled = true;
var zoomPadding = 20;
var revealScale = Reveal.getScale();
if( isEnabled ) {
var bounds = bbox_elm_below_mouse.getBoundingClientRect();
zoom.to({
x: ( bounds.left * revealScale ) - zoomPadding,
y: ( bounds.top * revealScale ) - zoomPadding,
width: ( bounds.width * revealScale ) + ( zoomPadding * 2 ),
height: ( bounds.height * revealScale ) + ( zoomPadding * 2 ),
pan: false
});
}
Reveal.addEventListener( 'overviewshown', function() { isEnabled = false; } );
Reveal.addEventListener( 'overviewhidden', function() { isEnabled = true; } );
};
您需要跟踪鼠标事件和键盘事件的原因是,当键盘事件触发时,该事件无法知道鼠标在哪里(如 discussed in this forum )。
最后,添加到 reveal.js
的 onDocumentKeyDown
函数,在 //2. System Defined Key Bindings
部分以下几行:
// letter "z"
case 90: initiateZoom(); break;
switch
语句将如下所示:
switch( event.keyCode ) {
// p, page up
case 80: case 33: navigatePrev(); break;
// n, page down
case 78: case 34: navigateNext(); break;
// h, left
case 72: case 37: navigateLeft(); break;
// l, right
case 76: case 39: navigateRight(); break;
// k, up
case 75: case 38: navigateUp(); break;
// j, down
case 74: case 40: navigateDown(); break;
// home
case 36: slide( 0 ); break;
// end
case 35: slide( Number.MAX_VALUE ); break;
// space
case 32: isOverview() ? deactivateOverview() : event.shiftKey ? navigatePrev() : navigateNext(); break;
// return
case 13: isOverview() ? deactivateOverview() : triggered = false; break;
// two-spot, semicolon, b, period, Logitech presenter tools "black screen" button
case 58: case 59: case 66: case 190: case 191: togglePause(); break;
// f
case 70: enterFullscreen(); break;
// a
case 65: if ( config.autoSlideStoppable ) toggleAutoSlide( autoSlideWasPaused ); break;
// letter "z"
case 90: initiateZoom(); break;
default:
triggered = false;
}
现在重新加载演示文稿,当鼠标位于要放大的元素上方时按“z”。
我可能会更改对 zoom.to
的调用,以使浏览器放大到光标所在的位置。就像现在一样(即使在 Reveal.js 的默认配置中),您将放大与光标下的元素相关的位置,这可能有点远离您实际想要的位置,特别是如果该元素采用一些屏幕空间。
请注意,此方法不太适合 Reveal.js 的 API changing the keyboard bindings ,因为异步调用其 zoom.js
依赖项(必须在调用 Reveal.configure( 之前)定义函数
)。但是,您也许可以使用 initiateZoom
)Reveal.isReady()
来解决这个问题。 。不过,只有当您想使用 API 重新配置热键绑定(bind)时才需要这样做,而不是像我在上面的示例中那样编辑源代码。
关于javascript - 更改reveal.js缩放快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31090055/
我一直有同样的问题——在 Reveal.js 中创建一组垂直幻灯片后,使用嵌套 Content Content 该垂直列表之后的下一张幻灯片无法正常工作。我的代码编辑器无法将其识别为 HTML,它
我正在使用 reveal.js进行演示。我正在使用 white 主题: 但是,最后一张幻灯片的主题应该是black。 我能做到吗?怎么办? 最佳答案 执行此操作的一个好方法可能是像这样在最后一张幻灯
我需要在同一页面上有多个模式窗口。基本上我打算有一个指向每个团队成员的链接,然后单击后会在模式框中弹出他们的详细信息。我正在使用 zurb 的 Reveal 插件。这是网站上的示例。 html:
在 Powerpoint 中,单击鼠标左键可前进到下一张幻灯片。在 reveal.js 中,它是使用键盘完成的。是否可以配置 reveal.js 在单击鼠标按钮时也前进到下一张幻灯片? 最佳答案 看起
到目前为止,我很喜欢 Reveal.js。不过,我遇到的一个问题是,我的无线演示 Remote 通常只能生成左/右箭头键击。我的 Reveal.js 幻灯片大量使用了它的二维功能以及片段。这意味着我的
我当前正在表格上使用“全部显示”按钮来显示所有表格条目: http://jsfiddle.net/SCpgC/ 但是,我想知道,有没有办法可以在单击时将“全部显示”切换为显示“较少显示”,以便用户可以
当 reveal.js 文件夹与 markdown 文件无关时,我无法使用 Pandoc 制作独立的 reveal.js 幻灯片。 一个简单的 Markdown 文件,Tester.md: # Tit
演讲者备注适用于默认的 reveal.js 演示文稿。 在我的演示文稿中,只要我添加 notes.js 依赖项,演示文稿就会停止工作。 我不知道是什么导致了这个问题。我测试了将默认演示文稿 index
我正在使用 Reveal.initialize({ slideNumber: true }) 是否可以隐藏扉页上的幻灯片编号? 最佳答案 我是这样做的: Reveal.addEventList
我有一个使用reveal.js 运行的演示文稿,一切正常。我正在编写一些示例代码,并且 highlight.js 在我的演示文稿中运行良好。但是,我想逐步显示代码。例如,假设我正在向您解释一个功能,我
有了reveal.js,不仅可以水平滑动,还可以通过垂直滑动添加第二个维度: slide1 slide2 A slide2 B slide2 C 但是,似乎只能从顶部的第一个小节开始(
假设我有一个简单的 reveal.js像这样滑动: Title Text Fragment 我想换 Text后颜色变为红色Fragment出现在屏幕上。我该怎么做? 最佳答案
我用 reveal.js 设置了一个演示文稿这意味着在无人看管的情况下使用。所以,我希望能够在所有指向“信息幻灯片”的幻灯片上显示一个小页脚(或其他地方的另一个链接),其中包含有关作者的数据、如何使用
我正在尝试使用reveal.js 进行演示。我尝试将图像添加到幻灯片中,但图像不会显示。这是我的代码 Slide Header Symptom:
我正在尝试使用语法高亮显示 reveal.js 中的演示文稿,但我不想使用 zenburn(默认设置),我想高亮显示用 R 编写的代码。我使用 highlight.js 生成为 R 定制的 css,但
我正在使用 Xaringan 编写演示文稿。我想嵌入视频,这样当我转换到包含视频的幻灯片时,它会自动全屏播放。 (即,我不想必须点击视频才能播放)。 我可以使用 revealjs 实现我想要的: ##
我已将幻灯片编号添加到我的展示 js 演示文稿中 Reveal.configure({ slideNumber: true }); Reveal.configure({
我尝试只在一个部分更改字体颜色,因为我添加了背景图片,否则您无法阅读白色: blablabla
我正在学习使用reveal.js,我发现它非常强大。 我想知道是否有可能在每次幻灯片转换时使显示播放声音。 我做了一个启用自动滑动选项的演示文稿,当幻灯片更改时发出声音会很有用。 有人能帮我吗 ? 谢
reveal.js 中默认使用哪个主题来高亮语法? 最佳答案 默认主题是 Zenburn,参见 index.html . 也可以在这里尝试 Zenburn:http://softwaremaniacs
我是一名优秀的程序员,十分优秀!