出于某种原因,我真的需要保持这个onclick,但我不能让它做我想要的。 如果点击上一个徽标,我想要的是将身体滑动到下一个徽标。
它看起来像这样:
<div class="logos">
<div class="logo" id="logo1"><a href="javascript:// something" onclick="slide()"><img src="..."></a></div>
<div class="logo" id="logo2"><a href="javascript:// something" onclick="slide()"><img src="..."></a></div>
<div class="logo" id="logo3"><a href="javascript:// something" onclick="slide()"><img src="..."></a></div>
</div>
然后:
function slide() {
var ind = $(this).closest('.logo').index();
var $logos = $('.logo');
var $next = $logos.eq(++ind);
var timer_slide = window.setTimeout(start_slide, 300);
function start_slide() {
if ($next.length) {
var where = $next.offset().top;
} else {
var where = $logos.filter(":first").offset().top;
}
$('body, html').animate({
scrollTop: where
})
}
}
/////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////
如果我这样做,它可以工作:
<div class="logos">
<div class="logo" id="logo1"><a href="javascript:// something"><img src="..."></a></div>
<div class="logo" id="logo2"><a href="javascript:// something"><img src="..."></a></div>
<div class="logo" id="logo3"><a href="javascript:// something"><img src="..."></a></div>
</div>
$("#logo1").click(function(){
var ind = $(this).closest('.logo').index();
var $logos = $('.logo');
var $next = $logos.eq(++ind);
var timer_slide = window.setTimeout(start_slide, 300);
function start_slide() {
if ($next.length) {
var where = $next.offset().top;
} else {
var where = $logos.filter(":first").offset().top;
}
$('body, html').animate({
scrollTop: where
})
}
});
我不能使用有效的原因是因为一切都是从主html控制的,而我所有的其他外部按钮都是用onclick =“...”完成的,到目前为止效果还不错。
如果有人知道如何使用此滑块使onclick工作,我会很感激。
非常感谢。
答案 0 :(得分:0)
努力寻找答案。
以下是代码的网址:http://fiddle.jshell.net/zepyp/
只需单击第一个图像,它就会动画自动滚动到第一个徽标,在第二个图像上单击它会自动滚动到第二个徽标,就像第三个图像一样。