<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/StephanWagner/jBox@v0.4.9/Source/jBox.min.js"></script>
<link href="https://cdn.jsdelivr.net/gh/StephanWagner/jBox@v0.4.9/Source/jBox.css" rel="stylesheet">
您可以立即为jBox设置选项,或者在使用插件时设置第二个参数:
var options = {
title: 'My title',
content: 'My content'
};
new jBox(options);
new jBox('Tooltip', options);
jBox附带默认插件 Tooltip, Mouse和 Modal。
此外,您还可以包含插件 确认, 通知和 图像。
ID | ||
ID | string | 选择一个唯一的id,否则jBox会为你设置一个(jBox1,jBox2,...) |
Dimensions | ||
width height | auto, integer | 内容区域的宽度和高度 |
minWidth minHeight | integer | 内容区域的最小宽度和高度 |
maxWidth maxHeight | integer | 内容区域的最大宽度和高度 |
responsiveWidth responsiveHeight | boolean | 调整宽度和高度以适合视口 |
responsiveMinWidth responsiveMinHeight | integer | 不要将宽度或高度调整到此值以下(以像素为单位) |
Attaching jBox | ||
attach | jQuery selector | 用于打开和关闭jBox的元素的jQuery选择器,例如'.tooltip' |
trigger | click, mouseenter, touchclick | 定义jBox在与附加元素交互时打开或关闭的事件 |
preventDefault | boolean | 打开jBox时防止默认事件,例如,不要在链接中跟随href |
Content | ||
content | string, jQuery element | 设置jBox的内容。您可以使用jQuery元素追加元素(将CSS样式显示设置为none,以便元素不会显示在您的页面上) |
getContent | string | 在jBox打开时从属性获取内容,例如'data-content'。使用'html'将附加元素HTML作为内容 |
title | string | 为jBox添加标题 |
getTitle | string | jBox打开时从属性中获取标题,例如'data-title' |
footer | string | 在jBox中添加页脚 |
isolateScroll | boolean | 隔离滚动到内容容器 |
AJAX | ||
ajax:{ url:null, data:'', } | 设置URL时,jBox在打开时发出AJAX请求。您可以添加任何jQuery ajax选项,例如beforeSend,complete,success等。 | |
↳url | string | 发送AJAX请求的URL |
↳data | string, object | 要使用您的AJAX请求发送的数据,例如{id:82,limit:10} |
↳reload | boolean, strict | jBox打开时重新发送AJAX请求。使用true仅对每个元素发送一次AJAX请求调用,或者每次jBox打开时发送'strict'重新发送 |
↳getURL | string | 源元素中AJAX请求将查找URL的属性,例如'data-url' |
↳getData | string | 源元素中AJAX请求将查找数据的属性,例如'data-ajax' |
↳setContent | boolean | 当AJAX请求完成时,自动将响应设置为新内容 |
↳spinner | boolean, string | 隐藏当前内容并在加载时添加微调器。您可以传递HTML内容来添加自己的微调器,例如spinner:'<div class =“mySpinner”> </ div>' |
↳spinnerDelay | integer | 等待微调器出现的毫秒数 |
↳spinnerReposition | boolean | 添加或删除微调器时重新定位jBox |
Position | ||
target | jQuery selector | jQuery的jQuery选择器将打开jBox。如果没有找到元素,jBox将使用附加元素作为目标 |
position | object | 设置具有水平位置x和垂直位置y的对象,例如{x:'right', y:'center'}。您还可以设置绝对位置的数字 |
outside | x,y,xy | 将jBox移动到目标元素之外 |
offset | integer, object | 抵消最终位置。您可以使用对象为x和y设置不同的值,例如{x:15,y:-10} |
attributes | object | 定义应使用哪些CSS属性,例如{x:'right', y:'bottom'}。请注意,右侧和底部只能在您的位置值为整数时使用,例如{x:300,y:20} |
fixed | boolean | 滚动时,您的jBox将保持在位 |
adjustPosition | flip, move, boolean | 如果空间不足,请调整jBoxes位置。值'flip'将jBox定位在相反的外部位置,值'move'仅适用于指针。设置为true以同时使用两者。此选项会覆盖重新定位选项 |
adjustTracker | boolean | 默认情况下,jBox在打开时或窗口大小更改时调整其位置,设置为true以在滚动时调整 |
adjustDistance | integer, object | 调整时到视口边缘的最小距离。使用对象设置不同的值,例如{top:50, right:5,bottom:20, left:5} |
reposition | boolean | 窗口大小更改时计算新位置 |
repositionOnOpen | boolean | 每次jBox打开时计算新位置(而不是仅在第一次打开时计算) |
repositionOnContent | boolean | 使用.setContent()或.setTitle()更改内容时计算新位置 |
Pointer | ||
pointer | boolean, left, right, top, bottom, center | 您的指针将始终指向目标元素,因此外部选项需要为“x”或“y”。默认情况下,指针居中,设置一个位置以将其移动到任何一侧。您还可以添加偏移量,例如“left:30”或“center:-20” |
pointTo | target, left, right, top, bottom | 除了'target'之外的其他设置将添加指针,即使没有设置或找到目标元素 |
Animations | ||
fade | integer | 淡入淡出持续时间(以ms为单位),设置为0或false以禁用 |
animation | object, zoomIn, zoomOut, pulse, move, slide, flip, tada | jBox打开或关闭时的动画。 要使用不同的动画进行打开和关闭,请使用对象:{open:'tada', close:'flip'}。您还可以设置移动方向和幻灯片动画:{open:'move:right', close:'slide:top'} |
Appearance | ||
theme | string | 设置一个jBox主题类,例如'TooltipDark' |
addClass | string | 将类添加到包装器 |
overlay | boolean | 添加叠加层以在jBox打开时隐藏页面内容(使用CSS调整颜色和不透明度) |
zIndex | integer | 使用高z-index |
Delays | ||
delayOpen | integer | 延迟开启毫秒。请注意,如果您的jBox没有完成关闭,则会忽略延迟 |
delayClose | integer | 延迟以毫秒结束。注意,总是有一个至少10毫秒的关闭延迟,以确保jBox在立即打开时不会关闭 |
Closing jBox | ||
closeOnEsc | boolean | 按[esc]键关闭jBox |
closeOnClick | boolean, body, box, overlay | 用鼠标点击关闭jBox:当你点击任何地方时关闭true,点击叠加时'叠加',点击jBox本身时'box',当你点击jBox时点击'body' |
closeOnMouseleave | boolean | 当鼠标离开jBox区域或附加元素的区域时关闭jBox |
closeButton | boolean, overlay, title, box | 在jBox中添加一个关闭按钮。如果可以找到任何这些元素,则值true将按顺序将按钮添加到overlay,title或jBox本身 |
Other options | ||
appendTo | jQuery element | 您的jBox将附加到的元素。除$('body')之外的任何其他元素仅对固定位置或位置值为数字有用 |
createOnInit | boolean | 创建jBox并在初始化时使其在DOM中可用,否则它将在首次打开时创建 |
blockScroll | boolean | 当jBox打开时阻止滚动 |
draggable | boolean, title, jQuery selector | 使您的jBox可拖动。使用title或提供jBox的任何子元素的选择器作为句柄 |
的dragover | boolean | 当您有多个可拖动的jBox时,您选择的jBox将始终移动到其他jBox上 |
autoClose | integer, boolean | jBox打开后自动关闭的时间(以毫秒为单位) |
Audio | ||
preloadAudio | boolean, array | 预加载选项音频中设置的音频文件。您还可以预加载其他音频文件,例如['src_to_file.mp3','src_to_file.ogg'] |
audio | string, object | jBox打开时要播放的音频文件的URL。设置没有文件扩展名的URL,jBox将查找.mp3和.ogg文件。要在jBox关闭时播放音频,请使用一个对象,例如{open:'src_to_audio1',close:'src_to_audio2'} |
volume | integer, object | 音量的百分比。要打开和关闭不同的卷,请使用对象,例如{open:75,close:100} |
Events | ||
OnInit | function | jBox初始化时触发。请注意,您可以使用此事件的功能,它指的是你的jBox对象,如OnInit的:函数(){ this.open(); } |
onAttach | function | 当jBox附加到元素时触发 |
onPosition | function | jBox定位时触发 |
onCreated | function | 在jBox创建并且在DOM中可用时触发 |
OnOpen | function | jBox打开时触发 |
OnClose | function | jBox关闭时被触发 |
onCloseComplete | function | 当jBox完全关闭时(褪色完成时)触发 |
Additional options for plugin Confirm | ||
confirmButton | string | 提交按钮的文本 |
cancelButton | string | 取消按钮的文本 |
confirm | function | 单击提交按钮时要执行的功能。默认情况下,如果找到,jBox将按顺序使用onclick或href属性 |
cancel | function | 单击取消按钮时执行的功能 |
closeOnConfirm | boolean | 当用户单击确认按钮时关闭jBox |
Additional options for plugin Image | ||
src | string | 获取图像源的属性,例如链接的'href':<a href="/path/image.jpg"> |
gallery | string | 用于设置图库的属性,例如'data-jbox-gallery'。更改此选项时,请确保选中附加选项,因为jBox图像默认附加到[data-jbox-gallery]。 |
imageLabel | string | jBox从中获取图像标签的属性,例如'title' |
imageFade | integer | 图像的淡入淡出持续时间,单位为毫秒 |
imageSize | cover, contain, auto, string | 如何显示图像。使用背景位置的 CSS样式,例如'cover',' 50%auto' |
imageCounter | boolean | 设置为true以添加图像计数器,例如4/20 |
imageCounterSeparator | string | 用于将当前图像编号与所有图像编号分开的HTML,例如'/'或'of' |
Additional options for plugin Notice | ||
color | black, red, green, blue, yellow | 为通知添加颜色 |
stack | boolean | 设置为false以禁用通知堆叠 |
stackSpacing | integer | 通知堆叠时的间距 |
在jBox上使用方法的最佳方法是将jBox保存在变量中:
var myModal = new jBox('Modal');
myModal.setTitle('My Title');
myModal.setContent('My Content');
myModal.open();
所有方法都返回jBox实例,因此您可以链接它们:
var myModal = new jBox('Modal').setTitle('My Title').setContent('My Content').open();
Open and close | |
.open(options) | 打开jBox。您可以使用选项目标设置新目标,例如{target: $('#newTarget')}。如果你的jBox有一个开启延迟,你可以使用ignoreDelay选项强制它立即打开,例如{ignoreDelay: true}。要在打开jBox时设置新的AJAX内容,可以传递一个AJAX对象,例如{ajax:{url:'http: //ajaxresponse.com '}} |
.close(options) | 关闭jBox。如果你的jBox有一个关闭延迟,你可以使用ignoreDelay选项强制它立即关闭,例如{ignoreDelay:true} |
.toggle(options) | 调用方法打开时jBox被关闭,关闭时,它是开放的 |
Dimensions | |
.setWidth(value) .setHeight(value) | 设置内容容器的CSS宽度和高度。可选你可以设置第二个参数来禁用jBox的自动重新定位,例如.setWidth(200,true) |
Attaching jBox | |
.attach(jQuery selector) | 将jBox附加到元素。提供jQuery选择器是可选的。如果您没有告诉此方法使用哪些元素,它将使用选项中定义的选择器。当在运行时创建应该打开或关闭jBox的元素时,应该调用此方法 |
.detach(jQuery selector) | 从元素中删除打开和关闭功能 |
Content | |
.setTitle(title) | 设置jBox的标题。如果还没有标题,则会创建它。如果尺寸改变,jBox将重新定位,禁用,传递true作为第二个参数:.setTitle('myTitle',true) |
.setContent(content) | 设置jBox的内容。您可以使用jQuery元素追加元素(将CSS样式显示设置为none,这样元素就不会显示在您的页面上)。如果维度发生变化,jBox将重新定位,禁用,将第二个参数传递为真:.setContent('myContent',true) |
.ajax(options) | 重新加载AJAX请求。您可以传递选项网址和数据,例如{url: '/ example.php', data:'id = 82'}或任何jQuery ajax选项 |
Audio | |
.audio(url, volume) | 播放音频文件。不要添加文件扩展名,jBox会查找.mp3和.ogg文件 |
Position | |
.position(options) | 重新计算你的jBoxes位置。您可以使用选项目标设置新目标,例如{target: $('#newTarget')} |
Animation | |
.animate(animation, options) | 您的jBox或任何其他元素的动画。你可以使用动画 'tada', 'tadaSmall', 'flash', 'shake', 'pulseUp','pulseDown', 'popIn', 'popOut', 'fadeIn', 'fadeOut', 'slideUp', ' slideRight', 'slideLeft'和'slideDown'。动画方法独立于选项动画。默认情况下,此方法将为jBox包装器设置动画,{element:$('#animateMe')}。要在动画结束时执行一个函数,请使用选项complete,例如{complete:function(){$('#animateMe')。remove(); }} |
Disable and enable | |
.disable() | 禁用您的jBox,在启用之前您将无法打开或关闭它 |
.enable() | 启用您的jBox,以便您可以再次关闭并打开它 |
Visibility | |
.hide() | 禁用和隐藏jBox。这不会影响叠加 |
.show() | 再次启用并显示您的jBox |
Destroy jBox | |
.destroy() | 销毁你的jBox并将其从DOM中删除 |
本文所有内容,均翻译与官方文档。若有疑问联系qq:35290838