jQuery实现滚动效果

这篇博客介绍了如何使用jQuery实现图片轮播和文字上下滚动的效果。对于图片轮播,通过改变图片区域的偏移值来实现图片切换;文字滚动则通过定时器动态调整ul列表元素的位置来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/dear_mr/article/details/69664060">本地数据正反查询的实现例子</a></li>
        <li><a href="http://blog.youkuaiyun.com/dear_mr/article/details/69454662">A-star寻路算法</a></li>
        <li><a href="http://blog.youkuaiyun.com/dear_mr/article/details/69261190">node.js的querystring.stringify的使用</a></li>
        <li><a href="http://blog.youkuaiyun.com/dear_mr/article/details/65521457">利用事件委托写一个简易扫雷游戏</a></li>
        <li><a href="http://blog.youkuaiyun.com/dear_mr/article/details/62579029">懒加载(延迟加载)</a></li>
        <li><a href="http://blog.youkuaiyun.com/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.youkuaiyun.com/detail/dear_mr/9810561

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值