我的图片非常长,需要在我创建的HTML #container中从左向右移动。
图像包含大约4幅画作,滑块需要使用舒适的速度,并且当其中一个画布位于中间时停止几秒钟。然后继续到图像中的下一幅画。
它应该从按钮点击开始,然后在第一幅可见的画作上开始和结束
<div id="container">
<img class="img" src="panorama.png"/>
</div>
<div id="start">
<h2 class="text">Start</h2>
</div>
$(document).ready(function()
{
$('#start').click(function()
{
var change_img_time = 5000;
var transition_speed = 100;
$('#container img');
{
}
});
});
答案 0 :(得分:0)
我这样做了:FIDDLE:
javascript / jQuery:
$(document).ready(function(){
// My controls (in miliseconds)
var change_img_time = 1000;
var transition_speed = 1000;
// Image properties
var image = $("div#container > img.img");
var aQuarter = image.width() / 4;
var copyIMG = image.clone();
image.after( copyIMG );
copyIMG.css({
"margin-top": 0 - image.innerHeight(),
"margin-left": copyIMG.width()
});
image = image.add(copyIMG);
var relative = $("<div>").css({
"position": "relative",
"padding": "0"
});
$("div#container").wrapInner(relative);
// Setting container-div width and height
$("div#container").css({
"width": aQuarter,
"height": image.height()
});
// Start-event
$("div#start").on("click", function startImageEvent() {
if (image.is(":animated")) return;
image
.animate({
"margin-left": "-=" + aQuarter
}, transition_speed)
.delay(change_img_time)
.animate({
"margin-left": "-=" + aQuarter
}, transition_speed)
.delay(change_img_time)
.animate({
"margin-left": "-=" + aQuarter
}, transition_speed)
.delay(change_img_time)
.animate({
"margin-left": "-=" + aQuarter
}, transition_speed, function(){
image.not(copyIMG).css("margin-left", "0");
copyIMG.css({"margin-left": copyIMG.width()});
$("div#start").one("click", startImageEvent);
});
});
});
和css也很重要:
div#container {
overflow: hidden;
z-index: 2;
}
div#start {
float: left;
padding: 0 20px;
margin: 30px;
border: 1px dotted #f00;
cursor: pointer;
}
div#container img.img {
float: left;
}
我试图使代码清晰易读,但如果您有任何疑问,请告诉我..
希望它有所帮助。