var $slide = $('.slide'), // 轮播区域的div
$slideList = $('.slide_list'), // 轮播列表
$lis = $('.slide_list li'),// 轮播中的四个li
$prevBtn = $('.prev'), // 上一张按钮
$nextBtn = $('.next'), // 下一张按钮
$pointsList = $('.points');// 小圆点列表
//
1.根据图片张数动态添加小圆点
for (var i = 0; i < iPicCount; i++) {
$pointsList.append('<li></li>');
}
// 1.1 默认第0个小点高亮
$pointsList.children(':first').addClass('active');
//
2.动画前的准备除了第一张 其它 都放到760的位置
$lis.not(':first').css({ 'left': 760 });
var iNowIndex = 0; // 即将要上显示的这一张
var iPreviousIndex = 0; // 上一张,也是要让位置的这一张
// 2.1 点击小圆点进行图片移动动画
$pointsList.delegate('li', 'click', function () {
// 记录即将要显示的图片索引
iNowIndex = $(this).index();
// 动画移动
fnMoveAnmation();
});
// 公共函数
function fnMoveAnmation() {
// 小圆点高亮处理
$pointsList.children().eq(iNowIndex).addClass('active').siblings().removeClass('active');
// 显示下一张
if (iNowIndex > iPreviousIndex) {
// 让当前显示的图片从0移动到左边-760为要出现的让位置
$lis.eq(iPreviousIndex).animate({ 'left': -760 });
// 让要出现的图片从原本的760位置移动到0的位置
$lis.eq(iNowIndex).animate({ 'left': 0 });
// 记录这一次显示的索引 作为下一次动画时要让位置的索引
iPreviousIndex = iNowIndex;
}
}
xxxxxxxxxx else { // 显示上一张 // 动画从左边向右移动的准备 $lis.eq(iNowIndex).css({ 'left': -760 }); // 让当前显示的图片从0移动到右边760位置 $lis.eq(iPreviousIndex).animate({ 'left': 760 }); // 让要显示的图片从原本-760的位置移动到0的位置 $lis.eq(iNowIndex).animate({ 'left': 0 }); // 记录这一次显示的索引 作为下一次动画时要让位置的索引 iPreviousIndex = iNowIndex; }
function fnMoveAnmation() {
// 如果重复点击小点什么也不做
if (iNowIndex == iPreviousIndex) return;
从右向左边滑动时
//解决跨越式点击BUG :抢先一步 将要出现的图片 丢到他该出现的位置 760
$lis.eq(iNowIndex).css({"left":760})
从左向右边滑动时
//解决跨越式点击BUG :抢先一步 将要出现的图片 丢到他该出现的位置 -760
$lis.eq(iNowIndex).css({"left":-760})
// 3.点击左边上一张按钮
$prevBtn.click(function () {
iNowIndex--;
fnMoveAnmation();
})
// 4.点击右边下一张按钮
$nextBtn.click(function () {
iNowIndex++;
fnMoveAnmation();
})
// 如果最后一张后继续点击右边按钮,应该向左移动的方式来显示第0张
if (iNowIndex > iPicCount - 1) {
// 下一张时:最后一张的下一张是第0张
iNowIndex = 0;
// 动画从右边向左移动的准备
$lis.eq(iNowIndex).css({ 'left': 760 });
// 让当前显示的图片从0移动到左边-760为要出现的让位置
$lis.eq(iPreviousIndex).animate({ 'left': -760 });
} else if (iNowIndex < 0) { // 如果是第0张时继续点击左边上一张按钮
// 上一张时:第0张的上一第应该是最后一张
iNowIndex = iPicCount - 1;
// 动画从左边向右移动的准备
$lis.eq(iNowIndex).css({ 'left': -760 });
// 让当前显示的图片从0移动到右边760位置
$lis.eq(iPreviousIndex).animate({ 'left': 760 });
} else {
// 把正常情况下的左右滚动代码放在else里面
}
// 自动滚动
function fnAutoMove() {
iNowIndex++;
fnMoveAnmation();
}
// 5.定时器自动滚动
var oTimer = setInterval(fnAutoMove, 3000);
//6.鼠标的事件
$slide.mouseenter(function () {
clearInterval(oTimer);
});
$slide.mouseleave(function () {
oTimer = setInterval(fnAutoMove, 3000);
})
{
"name":"tom",
"age":18
}
["tom",18,"programmer"]
$.ajax({
url: 'js/data.json',
type: 'GET',
dataType: 'json',
data:{'aa':1}
success:function(data){
alert(data.name);
},
error:function(){
alert('服务器超时,请重试!');
}
});
$.ajax({
url: 'js/data.json',
type: 'GET',
dataType: 'json',
data:{'aa':1}
})
.done(function(data) {
alert(data.name);
})
.fail(function() {
alert('服务器超时,请重试!');
});
// data.json里面的数据: {"name":"tom","age":18}
xxxxxxxxxx $.ajax({ url:'js/data.js', type:'get', dataType:'jsonp', jsonpCallback:'fnBack'}).done(function(data){ alert(data.name);}).fail(function() { alert('服务器超时,请重试!');});// data.js里面的数据: fnBack({"name":"tom","age":18});
$(function(){
$('#txt01').keyup(function(){
var sVal = $(this).val();
$.ajax({
url:'https://sug.so.360.cn/suggest',
type:'get',
dataType:'jsonp',
//给服务器传递参数
data: {word: sVal}
})
.done(function(data){
var aData = data.s;
$('.list').empty();
for(var i=0;i<aData.length;i++)
{
var $li = $('<li>'+ aData +'</li>');
$li.appendTo($('.list'));
}
})
})
})
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |