博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery制作无缝轮播效果
阅读量:6315 次
发布时间:2019-06-22

本文共 6143 字,大约阅读时间需要 20 分钟。

【一】HTML结构 

 

    
jquery制作无缝轮播器
    <
    >

     

    【二】css样式

    *{
    margin: 0; padding: 0;}.cont{
    position: relative; width: 600px; height: 300px; padding: 10px; border: 1px solid #333; margin: 150px auto; box-sizing: border-box; .imgcont{ position: relative; width: 578px; height: 278px; overflow: hidden; border: 1px solid #333; .img{ position: absolute; top: 0; left: 0; width: 2500px; list-style: none; overflow: hidden; li{ float: left; } li:nth-child(1){
    background-color: #c6a0a0;} li:nth-child(2){
    background-color: #666;} li:nth-child(3){
    background-color: #CC4A4A;} li:nth-child(4){
    background-color: #c6a0a0;} } } .btn{
    width:30px; height:60px; background:rgba(0,0,0,0.5); position:absolute; top:50%; margin-top:-25px; cursor:pointer; text-align:center; line-height:60px; color:#fff; font-size:40px; font-family:"宋体"; // display:none; } .btnL{
    left: 20px; } .btnR{
    right: 20px; } .num{
    position: absolute; bottom: 20px; left: 50%; margin-left: -40px; li{ width: 10px; height: 10px; list-style: none; float: left; margin-right: 10px; border-radius: 5px; background-color: #888; } .on{
    background-color: #ccc; } }}

     

    【三】jQuery效果

    1. 完整代码
      【详细代码,直观,容易理解,但代码量比较大】$(function(){    var index = 0;//保存当前图片的下标    //给轮播器的图片添加宽高,使其宽高与图片容器(imgcont)的宽高一致    var $width = $(".imgcont").width();    var $heigth = $(".imgcont").height();    $(".img > li").width($width).height($heigth);    // 复制第一个图片到最后一个图片的后面    var $clone = $(".img > li").first().clone();    $(".img").append( $clone );    //添加底部圆点    var $size = $(".img > li").size();    for( var j=1; j < $size; j++ ){        $(".num").append("
    2. ") } // 自动轮播效果 var timer = setInterval(function(){ index++; if( index == $size ){ $(".img").css( { left: 0 } ); index = 1; } $(".img").stop(true,false).animate({left:-index*$width},300); if( index == $size-1 ){ $(".num > li").eq(0).addClass("on").siblings().removeClass("on"); }else{ $(".num > li").eq(index).addClass("on").siblings().removeClass("on"); } },2000) // 鼠标划入取消自动轮播 $(".cont").hover(function(){ clearInterval(timer); },function(){ timer = setInterval(function(){ index++; if( index == $size ){ $(".img").css( { left: 0 } ); index = 1; } $(".img").stop(true,false).animate({left:-index*$width},300); },2000) }) // 圆点划入的轮播效果 $(".num li").first().addClass("on"); $(".num > li").hover(function(){ var $index = $(this).index(); index = $index; $(".img").stop(true,false).animate({left:-index*$width},300); //stop(true,false)将未执行的动画队列清空,但不将正在执行的动画跳转到末状态 $(this).addClass("on").siblings().removeClass('on'); }) // 左右按钮的轮播效果 $(".btnL").click(function(){ index++; if( index == $size ){ $(".img").css( { left: 0 } ); index = 1; } $(".img").stop(true,false).animate({left:-index*$width},300); if( index == $size-1 ){ $(".num > li").eq(0).addClass("on").siblings().removeClass("on"); }else{ $(".num > li").eq(index).addClass("on").siblings().removeClass("on"); } }) $(".btnR").click(function(){ index--; if( index == -1 ){ $(".img").css({left:-($size-1)*$width}); index = $size - 2; } $(".img").stop(true,false).animate({left:-index*$width},300); if( index == $size-1 ){ $(".num > li").eq(0).addClass("on").siblings().removeClass("on"); }else{ $(".num > li").eq(index).addClass("on").siblings().removeClass("on"); } })})

       

    3. 精简代码
      //【精简版代码】$(function(){    var index = 0;    var $width = $(".imgcont").width();     var $heigth = $(".imgcont").height();     $(".img > li").width($width).height($heigth);    var $clone = $(".img > li").first().clone();     $(".img").append( $clone );     var $size = $(".img > li").size();     for( var j=1; j < $size; j++ ){         $(".num").append("
    4. ") } //自动轮播 var timer = setInterval(function(){ index++; move(); },2000) // 鼠标划入取消自动轮播 $(".cont").hover(function(){ clearInterval(timer); },function(){ timer = setInterval(function(){ index++; move(); },2000) }) // 圆点划入的轮播效果 $(".num li").first().addClass("on"); $(".num > li").hover(function(){ var $index = $(this).index(); index = $index; $(".img").stop(true,false).animate({left:-index*$width},300); $(this).addClass("on").siblings().removeClass('on'); }) // // 左右按钮的轮播效果 $(".btnL").click(function(){ index++; move(); }) $(".btnR").click(function(){ index--; move(); }) function move(){ if( index == $size ){ $(".img").css( { left: 0 } ); index = 1; } if( index == -1 ){ $(".img").css({left:-($size-1)*$width}); index = $size - 2; } $(".img").stop(true,false).animate({left:-index*$width},300); if( index == $size-1 ){ $(".num > li").eq(0).addClass("on").siblings().removeClass("on"); }else{ $(".num > li").eq(index).addClass("on").siblings().removeClass("on"); } }})

       

    转载于:https://www.cnblogs.com/zhuyinxiaozi/p/5557672.html

    你可能感兴趣的文章
    Truncate Table
    查看>>
    Android开发教程:shape和selector的结合使用
    查看>>
    【转】C# DllImport的用法(经典!)
    查看>>
    Oracle RAC 碰到 gc buffer busy
    查看>>
    Selenium2(WebDriver)总结(一)---启动浏览器、设置profile&加载插件
    查看>>
    struct2视频教程
    查看>>
    SPOJ 2798 Query on a tree again!
    查看>>
    利用URL重写实现参数目录化
    查看>>
    linux 判断文件最后更新时间 实现监控日志是否有输出功能
    查看>>
    爪哇国新游记之八----读写文件及数组排序
    查看>>
    应用解决告诉你什么时候该用ajax
    查看>>
    PAT A1015
    查看>>
    React-生命周期杂记
    查看>>
    十流程序员 编程 的小小想法
    查看>>
    设计模式(2)代理模式
    查看>>
    七牛云对象存储 JavaScript SDK 更新,即刻体验更简单·可信赖的服务
    查看>>
    我们来聊聊Cookie、Session和Storage的那些事
    查看>>
    video在微信和QQ浏览器中不全屏播放解决
    查看>>
    如何快速成长为技术大牛?阿里资深技术专家的总结亮了
    查看>>
    php短信接口接入详细过程
    查看>>