|
Tạo một slide show bằng javascript là một việc không quá phức tạp. Bạn chỉ cần sử dụng setInterval() để định thời gian thực thi một hàm nào đó có nhiệm vụ thay đổi lần lượt các ảnh của một <img>. Tuy nhiên, để làm cho ví dụ này phức tạp hơn một chút, ta nên dùng đến sự trợ giúp của jQuery.
Hàm setInterval(code,millisec,lang) sẽ thực thi một hàm được truyền vào làm tham số sau một khoảng thời gian xác định cho đến khi bạn gọi hàm clearInterval(). Tham số của hàm clearInterval() chính là giá trị trả về của setInterval(). Ta có thể gọi giá trị đó là định danh của timer. Các tham số của hàm setInterval():
Chuẩn bị: Chép ba tập tin ảnh vào thư mục chứa tập tin html, đặt tên các tập tin ảnh này như trong đoạn mã bên dưới. Sau đó tôi tạo một mảng các hình ảnh sẽ dùng cho slide show và một hàm dùng để thực hiện slide show là slideImage(). Bạn đổi thay đổi ảnh của một <img> bằng cách thay đổi thuộc tính src của nó thông qua hàm attr() của jQuery.
var imgs = [
"image (1).jpg",
"image (2).jpg",
"image (3).jpg"];
var imageIndex=1;
function slideImage()
{
$("#bigImage").fadeOut("slow", function() {
$(this).attr("src", imgs[imageIndex]).fadeIn("slow");
if(++imageIndex>=imgs.length)
imageIndex=0;
});
}
Trong ví dụ này, tôi tạo thêm các hình ảnh nhỏ (thumbnail) để khi người dùng di chuyển chuột lên, bức ảnh lớn sẽ được thay đổi theo hình thumbnail đó:
var $bigImage=$("#bigImage");
$(".thumbnail").mouseover(function()
{
$(this).fadeTo("fast",0.5);
var src=$(this).attr("src");
$bigImage.fadeOut("fast",function()
{
$bigImage.attr("src",src);
});
$bigImage.fadeIn("fast");
});
$(".thumbnail").mouseleave(function()
{
$(this).fadeTo("fast",1);
});
Và cuối cùng tôi sẽ thêm một button để cho phép người dùng chạy/ngừng slide show:
var timerId=0;
var $startButton=$("#startButton");
$startButton.click(function()
{
if(timerId==0)
{
timerId=setInterval(slideImage, 3000);
$(this).text("Stop");
}
else
{
clearInterval(timerId);
$(this).text("Start");
timerId=0;
}
});
Mã html hoàn chỉnh:
<html>
<head>
<title>Image Slide Show - YinYangIt's Blog</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript">
</script>
<style type="text/css">
.thumbnail
{
width:75px;
height:100px;
}
</style>
<script type="text/javascript">
var imgs = ["image (1).jpg",
"image (2).jpg",
"image (3).jpg"];
var imageIndex=1;
function slideImage()
{
$("#bigImage").fadeOut("slow", function() {
$(this).attr("src", imgs[imageIndex]).fadeIn("slow");
if(++imageIndex>=imgs.length)
imageIndex=0;
});
}
$(function()
{
var timerId=0;
var $startButton=$("#startButton");
$startButton.click(function()
{
if(timerId==0)
{
timerId=setInterval(slideImage, 3000);
$(this).text("Stop");
}
else
{
clearInterval(timerId);
$(this).text("Start");
timerId=0;
}
});
var $bigImage=$("#bigImage");
$(".thumbnail").mouseover(function()
{
$(this).fadeTo("fast",0.5);
var src=$(this).attr("src");
$bigImage.fadeOut("fast",function()
{
$bigImage.attr("src",src);
});
$bigImage.fadeIn("fast");
});
$(".thumbnail").mouseleave(function()
{
$(this).fadeTo("fast",1);
});
});
</script>
</head>
<body>
<table>
<tr>
<td>
<img id="bigImage" src="image (1).jpg" height="300px" width="200px"/>
</td>
<td>
<table id="thumbnailsTable">
<tr>
<td><img class="thumbnail" src="image (1).jpg"/></td>
</tr>
<tr>
<td><img class="thumbnail" src="image (2).jpg"/></td>
</tr>
<tr>
<td><img class="thumbnail" src="image (3).jpg"/></td>
</tr>
</table>
</td>
</tr>
</table>
<button id="startButton">Start</button>
</body>
</html>
http://yinyangit.wordpress.com |
jQuery – Tạo một Image Slide Show đơn giản
Ý kiến bạn đọc
Tin tức khác
jQuery – Hướng dẫn tổng quan về jqGrid Plugin
- 22/2/2013
Javascript – Tạo chuyển động với WindowAnimationTiming API
- 20/4/2012
Javascript – Dump đối tượng dưới dạng HTML table
- 5/4/2012
jQuery – Tạo Vertical Collapsible Navigation Menu
- 5/4/2012
jQuery plugin – Turn.js: Hiệu ứng lật trang cho HTML5
- 5/4/2012
HTML – Sử dụng Character Entity
- 5/4/2012
HTML – Thuộc tính DesignMode và ContentEditable
- 4/4/2012
Javascript – Tạo script động và kĩ thuật JSONP
- 4/4/2012
jQuery – Các đoạn mã (snippet) hữu ích
- 2/4/2012
jQuery – Hiệu ứng Tooltip di chuyển theo chuột
- 2/4/2012
Tin tiêu điểm
-
Tạo tab menu cơ bản sử dụng jQuery UI
(6,413)
-
Jquery Paging - Phân trang với jQuery Pagination Plugin
(3,914)
-
15 jQuery slideshow bạn không nên bỏ qua
(3,878)
-
25 Jquery Slider tuyệt đẹp cho bạn
(3,675)
-
[Tìm hiểu jQuery căn bản] Bài 3. Cú pháp trong jQuery
(3,517)
-
jQuery plugin – Turn.js: Hiệu ứng lật trang cho HTML5
(3,275)
-
25 Jquery DropDown Menu tuyệt đẹp cho bạn
(2,893)
-
jQuery – Tạo cửa sổ popup đơn giản
(2,798)
-
[Tìm hiểu jQuery căn bản] Bài 2. Giới thiệu về jQuery
(2,753)
-
jQuery – Hiệu ứng Tooltip di chuyển theo chuột
(2,461)
Gallery
Website hữu ích
Chuyên trang hỏi đáp Tinmoi.vn
Tags
asp.net
JavaScript
Lập trình
Cơ sở dữ liệu
jquery
Csharp
Ajax
Thủ thuật
JavaScript
menu
Sql Server
Lập trình C#
WebService
stty
Sql
Phân trang
Rewrite
Mã hoá
Backup
Thủ thuật lập trình
Store procedure
Accordion
Validation
Store
Upload
Slide
jQueryPlugin
StoreProcedure
Regular Expression
Regex
android
Quick and snow
HTML5
WPF
WCF




