前言
初学jquery 在网上看到的一片文章 感觉不错 便学习了下。代码上我做了自己的修改 还加了许多学习的注释 代码更易读
转载原文
本人的修改版源码 git
html源码
|
|
样式
|
|
js代码
|
|
我修改的版本
现在大多都是带banner 和 前进后退的slider 还发现作者的原版点击索引数字的时候 如果点击2下 就会有bug
会出现一个 class on都没有的现象
我在这2个方面作出了点改进。
修改点击bug
$('#banner ul li').removeClass('on');
$('#banner ul li').eq(n).addClass('on');
原理很简单 点击的时候先移除所有的on样式,再把对应的图片 添加on样式
添加前进后退按钮
|
|
初始化页面的时候添加按钮 为隐藏 鼠标悬浮后显示并绑定点击事件
{% codeblock %}
function prev() {
if(n > 0) {
n = n-1;
} else {
n = count-1;
}
$("#banner_info").html($("#banner_list a").eq(n).find("img").attr('title'));
//根据下标修改info
$("#banner_info").unbind().click(function(){window.open($("#banner_list a").eq(n).attr('href'), "_blank")})
//移除原有的点击事件 修改为新事件{地址改为图片href}
$("#banner_list a").filter(":visible").fadeOut(500).parent().children().eq(n).fadeIn(1000);
// 返回显示的图片 消失 返回 下标为i的a 链接图片 显示
$('#banner ul li').removeClass('on');
$('#banner ul li').eq(n).addClass('on');
};
function next() {
if(n < count-1) {
n = n+1;
} else {
n = 0;
}
$("#banner_info").html($("#banner_list a").eq(n).find("img").attr('title'));
//根据下标修改info
$("#banner_info").unbind().click(function(){window.open($("#banner_list a").eq(n).attr('href'), "_blank")})
//移除原有的点击事件 修改为新事件{地址改为图片href}
$("#banner_list a").filter(":visible").fadeOut(500).parent().children().eq(n).fadeIn(1000);
// 返回显示的图片 消失 返回 下标为i的a 链接图片 显示
$('#banner ul li').removeClass('on');
$('#banner ul li').eq(n).addClass('on');
//点击切换图片
};
{% endcodeblock %}
定义事件函数 点击触发事件
建议把js函数放到尾部 与jq 分开 以提高代码的可读性
后记
不知为啥。看到jq我就想做图片轮播 可能是因为以前不懂代码的时候对图片轮播觉得非常高大上吧。。