jQuery实现滚动效果

来源:互联网 发布:js replace 单引号 编辑:程序博客网 时间:2024/05/16 16:14

jQuery实现滚动效果

1. 图片轮播:

原理如下:
这里写图片描述

假设有三张图片,三张图片实际上都是存在于页面上的,但是由于设置的可视部分的大小(这里主要考虑宽度)是小于等于一张图片的大小的,想要看到其他图片的话,最直接的想法就是将需要显示的图片放在可视区域,也就是说需要改变的是整个图片区域的偏移值(left/right)

具体实现:

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <title></title>    <script type="text/javascript" src="jquery.min.js"></script>    <link rel="stylesheet" type="text/css" href="./style.css"></head><body>    <div class="carousel">        <div class="Con">        <!-- 轮播(carousel)项目 -->            <div class="scroll">                <img src="./pic/1.jpg">                <img src="./pic/2.jpg">                <img src="./pic/3.jpg">                <img src="./pic/4.jpg">                <img src="./pic/5.jpg">                <img src="./pic/6.jpg">                <img src="./pic/7.jpg">                         </div>            <!-- 轮播(carousel)指标 -->            <div class="But">                <span class="active"></span> <!-- 0 * img.width -->                <span></span>                <span></span>                <span></span>                <span></span>                <span></span>                <span></span>            </div>         </div>        <!-- 轮播(carousel)导航 -->        <a href="javascript:void(0)" class="prev" data-slide="prev"> << </a>        <a href="javascript:void(0)" class="next" data-slide="next"> >> </a>    </div></body></html>
$(function() {  var _index = 0;  var time = 0;  $(".But span").click(function() {    _index = $(this).index();    play(_index);  });  function play(index) {    $(".But span").eq(index).addClass('active').siblings('span').removeClass('active');    $('.scroll').animate({left: -(_index*1024)}, 500);  }  function autoPlay() {    time = setInterval(function() {      _index++;      if(_index > 6) {        $('.scroll').css("left", 0);        _index = 0;      }      play(_index);    }, 3000);  }  autoPlay();  $('.prev').click(function() {    if(_index <= 0) {      return;    }    clearInterval(time);    play(--_index);    autoPlay();  });  $('.next').click(function() {    if(_index >= 6) {      return;    }    clearInterval(time);    play(++_index);    autoPlay();  });         });

2. 上下滚动

这里以文字滚动为示例:就是利用定时器,在一定的时间间隔后不断的将ul中的最后一个li元素插入到ul的第一个li元素中

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <title></title>    <script type="text/javascript" src="jquery.min.js"></script>    <style type="text/css">        .ul-list li {            text-decoration: none;            list-style: none;        }    </style></head><body>    <ul class="ul-list">        <li><a href="http://blog.csdn.net/dear_mr/article/details/69664060">本地数据正反查询的实现例子</a></li>        <li><a href="http://blog.csdn.net/dear_mr/article/details/69454662">A-star寻路算法</a></li>        <li><a href="http://blog.csdn.net/dear_mr/article/details/69261190">node.js的querystring.stringify的使用</a></li>        <li><a href="http://blog.csdn.net/dear_mr/article/details/65521457">利用事件委托写一个简易扫雷游戏</a></li>        <li><a href="http://blog.csdn.net/dear_mr/article/details/62579029">懒加载(延迟加载)</a></li>        <li><a href="http://blog.csdn.net/dear_mr/article/details/61669330">JS中XML的解析</a></li>    </ul>    <script type="text/javascript">        setInterval(function() {            $('.ul-list li:last').css({'height':'0px', 'opacity':"0"}).insertBefore(".ul-list                li:first").animate({'height':'25px', 'opacity': '1'}, 'slow', function() {                $(this).removeAttr('style');            })        }, 3000);    </script></body></html>

具体代码见:http://download.csdn.net/detail/dear_mr/9810561

0 0