我喜欢像这样将highslide“加载”居中:
.highslide-loading {
display: block;
position:fixed;
top:50%;
left:50%;
height:32px;
width:32px;
padding: 24px;
margin:-40px 0 0 -40px;
text-indent:-9999em;
background:#FFFFFF url(img/hslide_loader_white.gif) 50% 50% no-repeat;
-webkit-box-shadow:0 0 5px 0 rgba(0, 0, 0, 0.75);
box-shadow:0 0 5px 0 rgba(0, 0, 0, 0.75);
-webkit-border-radius: 3px;
border-radius: 3px;
}
但是 highslide 脚本提供了这样的内联样式:
element.style {
left: 134px;
opacity: 0.9;
position: absolute;
top: -9999px;
z-index: 1003;
}
我在旧的支持论坛中找到了这个帖子,它解释了如何访问加载对象:http ://highslide.com/forum/viewtopic.php?f=1&t=1796&p=7975
hs.Expander.prototype.onShowLoading = function (sender) {
var width = sender.thumbWidth;
sender.loading.style.width = width +'px';
};
这也适用于“位置”,但不适用于“顶部”或“左侧”
因为:
顶部和左侧的值是在 onShowLoading 事件之后设置的,因此事件处理程序无法编辑这些值。您可以编辑 highslide.js 文件本身来解决此问题。另一种方法是将 marginLeft 和 marginTop 设置为加载标签,并让 Highslide 做顶部和左侧。
但是 - 我对 highslide 脚本有不同的用法,需要保留 highslide.js 的代码库。边距对我没有帮助。
我确实制作了一个自定义配置脚本 - 但 hs.loading 无法访问。
if (typeof(hs) != "undefined") {
$.extend(true, hs || {}, {
dimmingOpacity:0.75,
...,
loading: hs.createElement('a', {
className: 'highslide-loading',
title: hs.lang.loadingTitle,
innerHTML: hs.lang.loadingText,
href: 'javascript:;'
}, {
position: 'fixed',
top: '50%',
opacity: hs.loadingOpacity,
zIndex: 1
}, hs.container
)
});
}
同样在 hs.overrides ( http://highslide.com/ref/hs.overrides ) 中也无法访问加载程序
有没有办法让加载器在窗口中居中?
如果不是 - 我停止调查 ;-)