jQuery实现图片轮播效果
来源:互联网 发布:淘宝刷销量会被 编辑:程序博客网 时间:2024/05/16 04:20
图片轮播是一个老生常谈的东西,今天跟着书上写了一个demo。(参考《锋利的jQuery》)
要实现的功能,图片可以向左向右滚动,自动循环播放,并且可以跳转至指定页面。
查看示例
图片滚动效果主要用到的东西就是position:absolute 和 left: 0; overflow:hidden属性,用于定位图片和隐藏显示多余图片。
具体代码可以点开示例链接——查看网页源代码。。
看一下代码结构吧
scroll.html:
<div class="v_show"> <div class="v_caption"> //4个页面标识,可点击切换至具体页面 <div class="highlight_tip"> <span class="current">1</span> <span>2</span> <span>3</span> <span>4</span> </div> //向左 向右按钮 <div class="change_btn"> <span class="prev">back</span> <span class="next">next</span> </div> </div> //图片容器 <div class="v_content"> //图片显示区域 <div class="v_content_list"> <ul> //将图片资源全部写在这里 <li><a href="#"><img src="img/01.jpg" alt="海贼王"/></a><h4><a href="#">海贼王</a></h4> <span>播放:<em>28,276</em></span></li> <li><a href="#"><img src="img/01.jpg" alt="海贼王"/></a><h4><a href="#">海贼王</a></h4> <span>播放:<em>28,276</em></span></li> ....... </ul> </div> </div></div>
main.js:
$(function () { var page = 1; var i = 4; //向右滚动效果实现 $("span.next").click(function () { //console.log('enter'); var $parent = $(this).parents("div.v_show"); var $v_show = $parent.find("div.v_content_list"); var $v_content = $parent.find("div.v_content"); //获取内容显示区宽度 var v_width = $v_content.width(); var len = $v_show.find("li").length; var page_count = Math.ceil(len / i); if (!$v_show.is(":animated")) { //如果已经是最后一页,则滚动到第一页 if (page == page_count) { $v_show.animate({left: "0"}, "normal"); page = 1; } else { $v_show.animate({left: "-=" + v_width}, "normal"); page++; } $parent.find("span").eq((page - 1)).addClass("current").siblings().removeClass("current"); } }); //向左滚动效果实现 $("span.prev").click(function () { var $parent = $(this).parents("div.v_show"); var $v_show = $parent.find("div.v_content_list"); var $v_content = $parent.find("div.v_content"); var v_width = $v_content.width(); var len = $v_show.find("li").length; var page_count = Math.ceil(len / i); //防止多次连续点击鼠标移除后仍在进行动画 //判断当前元素是否处于动画状态,并选择是否执行动画操作 if (!$v_show.is(":animated")) { //如果已经是第一页,则滚动到最后一页 if (page == 1) { $v_show.animate({left: '-=' + v_width * (page_count - 1)}, "slow"); page = page_count; } else { $v_show.animate({left: "+=" + v_width}, "normal"); page--; } //上方4个标识的样式增加与移除 $parent.find("span").eq((page - 1)).addClass("current").siblings().removeClass("current"); } }); $(".highlight_tip span").click(function () { var $pageToGo = $(this).index() +1; var $parent = $(this).parents("div.v_show"); var $v_show = $parent.find("div.v_content_list"); var $v_content = $parent.find("div.v_content"); var v_width = $v_content.width(); var len = $v_show.find("li").length; if (!$v_show.is(":animated")) { //判断向右滚动还是向左滚动 if ($pageToGo > page) { $v_show.animate({left: "-=" + v_width*($pageToGo - page)}, "normal"); page = $pageToGo; $parent.find("span").eq((page - 1)).addClass("current").siblings().removeClass("current"); } else { $v_show.animate({left: "+=" + v_width*(page - $pageToGo)}, "normal"); page = $pageToGo; $parent.find("span").eq((page - 1)).addClass("current").siblings().removeClass("current"); } } }); //设置自动滚动 时间设为3秒setInterval("$('span.next').trigger('click')",3000); })
主要css样式:
.highlight_tip span { display: inline; float: left; width: 7px; height: 7px; overflow: hidden; margin: 0 2px; background: url(img/btn_cartoon.gif) no-repeat 0 -320px; text-indent: -9999px; cursor: pointer;}.v_content { position: relative; width: 592px; height: 160px; overflow: hidden; border-right: 1px solid #E7E7E7; border-bottom: 1px solid #E7E7E7; border-left: 1px solid #E7E7E7;}.v_content_list { position: absolute; width: 2500px; top: 0px; left: 0px;}.highlight_tip .current { background-position: 0 -220px;}
详细实现代码可以查看上方给出的示例链接,在此不赘述。
0 0
- JQuery实现图片轮播效果
- JQuery实现图片轮播效果
- 使用Jquery实现图片轮播效果
- jQuery实现图片轮播效果
- jquery实现图片轮播效果
- jQuery实现图片轮播效果
- jQuery实现图片轮播效果
- 用Jquery实现轮播图片效果
- jQuery实现图片轮播效果
- JQuery实现图片轮播滚动效果
- jQuery实现图片轮播效果,jQuery实现焦点新闻
- jQuery实现图片轮播效果,jQuery实现焦点新闻
- Jquery图片轮播效果
- jQuery图片轮播效果
- 基于JQuery的实现图片轮播效果(焦点图)
- JQuery实现banner图片的轮播效果
- jquery 实现淡入淡出图片轮播效果
- jQuery实现图片轮播(淡入淡出效果)
- tips
- vijos P1131
- Android Studio Logcat的使用
- rotationMode属性的强大
- 基于BroadReceiver实现短信拦截和发送短信
- jQuery实现图片轮播效果
- 折线图制作
- 性能大比拼
- BitmapFactory.Options.inPurgeable
- Java类初始化顺序
- 新的开始...
- Oracle异机恢复处理
- Layout inflation在Android环境中是一个专业术语,用于表示某个XML资源布局文件被解析并转化成为一个层级的View对象的过程。
- Xcode中使用自动布局实现简单登录界面