您好我正在制作带缩略图的幻灯片。 我的幻灯片有效,但我想要缩略图,因为我没有足够的空间来展示它们。 它可以悬停或单击按钮prev / next。 我的代码需要在javascript中只有没有librairies。
以下是where I'm at,整个代码都在一页中。
- 编辑
这是我的HTML
<div class="controls">
<a class="previous" href=""><img src="images/fleche_g.jpg" alt=""></a>
<div class="thumbs">
<ul id="thumbs">
</ul>
</div>
<a class="next" href=""><img src="images/fleche_d.jpg" alt=""></a>
</div>
我的CSS
.controls {
width: 658px;
height: 76px;
margin-top: 10px;
}
#thumbs {
display: inline-block;
overflow: hidden;
height: 76px;
position: relative;
z-index: 99;
}
.controls .previous, .controls .next {
float: left;
width: 51px;
height: 76px;
position: relative;
z-index: 999;
}
.controls .previous {
background: transparent url('images/fleche_g.jpg') 0 0 no-repeat;
}
.controls .next {
background: transparent url('images/fleche_d.jpg') 0 0 no-repeat;
}
我试过调用on上一个/下一个按钮的两个简单函数。
// Move thumbs to the left
function left() {
document.getElementById('thumbs').style.left = '-124px';
}
// Move thumbs to the right
function right() {
document.getElementById('thumbs').style.right = '-124px';
}
到目前为止,根本没有任何作用。我错过了什么?
答案 0 :(得分:0)
我认为这是解决问题所需要的。 1个新函数getLeft();其余的是适应现有的功能和css。
我认为这应该适用于更多图像,因此客户端必须多次按下右键才能结束。 您可能还需要额外的计算来限制范围;因此所有图像都不会超出.wrapper-thumbs的右侧或左侧(请随时问我)。
注意:也许你想要左右相反(我见过两者);只需交换500&lt; - &gt; -500
或者你只想要那么多的图像,这样只需按一下按钮就可以让你完全左或右?
的CSS:
#slideshow .controls .wrapper-thumbs {
overflow: hidden;
position: relative; /* this means: the upper-left corner of <div class="wrapper-thumbs"> is now the the new base/zero (for style.left) for all the children with position: absolute */
float: left; /* this is so the left- and right-button are kept in place */
margin: 0;
width: 556px;
height: 76px;
}
#thumbs {
display: inline-block;
width: 900px;
height: 76px;
position: absolute; /* So now, the new base of #thumbs is set to the base/zero of <div class="wrapper-thumbs"> */
z-index: 99;
}
脚本:
// function reads style.left; removes 'px'; returns the numeric value.
function getLeft() {
var left = document.getElementById('thumbs').style.left;
return Number(left.substr(0, left.length - 2)); // .substr removes the 'px'
}
// Move thumbs to the left
function left() {
var currentLeft = getLeft();
var newLeft = currentLeft -500;
document.getElementById('thumbs').style.left = newLeft + 'px';
}
// Move thumbs to the right
function right() {
var currentLeft = getLeft();
var newLeft = currentLeft +500;
document.getElementById('thumbs').style.left = newLeft + 'px';
}