我有一个jquery ui滑块,可以在移动时滚动div的内容,这里是代码:
var paraHeight = $("#descPara").height();
var maxScroll = paraHeight - 250;
var activeScroll;
if (maxScroll <= 0){
//do nothing
} else {
$("#slider2").slider({
orientation: "vertical",
min: 0,
animate: true,
max: maxScroll,
value: maxScroll,
slide: function(event, ui) {
$("#descPara").stop().animate({'bottom': (-ui.value + maxScroll) + 'px'}, 1000);
}
});
}
这适用于Firefox,但不适用于Safari / Chrome。在Safari和Chrome中发生的情况是,页面加载时滑块的句柄不存在,直到您单击滑块轨道并且当它出现时无法拖动时,您仍然可以通过单击滑块轨道滚动。
然而,这个问题只有在cms joomla中使用时才会出现,在这个cms之外,它在所有浏览器中都能很好地运行。怪异。
有没有人有类似的问题?这真的很有帮助,谢谢。
答案 0 :(得分:1)
Joomla经常包含mootools作为帮助你的方式以及一些简单的javascript内容。其中一个重要问题是,当使用jQuery时, $ 别名是为mootools而不是jQuery保留的。以下是一些解决方案。
如果您知道仍需要mootools,请修改调用jQuery的代码以使用 jQuery()函数而不是 $()。像这样:
var paraHeight = jQuery("#descPara").height();
...
jQuery("#slider2").slider({
orientation: "vertical",
min: 0,
animate: true,
max: maxScroll,
value: maxScroll,
slide: function(event, ui) {
jQuery("#descPara").stop().animate({'bottom': (-ui.value + maxScroll) + 'px'}, 1000);
}
});
摆脱mootools。这是PHP的修复。您可以使用它来阻止mootools输出到网页(以及随后干扰您的jQuery。):
<?php
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
$headers = $this->getHeadData();
$headers['scripts'] = array();
$this->setHeadData($headers);
}
?>