jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)

jQuery不间断滚动效果是网页中常见的一种滚动方式,其可以模拟百度新闻支持文字、图片、垂直滚动等效果,非常实用。下面就是一份完整的攻略,包含了实现该滚动效果的详细步骤,以及示例代码。

1. HTML结构

首先,我们需要在HTML中设置一个容器,并且在容器中插入滚动元素。以下是一个简单的HTML结构示例:

<div id="scrollBox">
  <ul>
    <li><img src="image1.jpg"></li>
    <li><img src="image2.jpg"></li>
    <li>文本内容1</li>
    <li>文本内容2</li>
  </ul>
</div>

这个HTML结构中,我们设置了一个id为scrollBox的div容器,其中包含一个ul列表,列表里包含了四个li元素,每个li元素里有一张图片或一段文本内容。这些元素都将在滚动效果中参与滚动。

2. CSS样式

接下来,我们需要对滚动盒子进行样式设置。

#scrollBox{
  overflow:hidden;
  position:relative;
  width:300px;
  height:200px;
}

我们将滚动盒子的overflow属性设置为hidden,这样我们可以隐藏超出盒子大小的内容。接着,我们设置了相对定位的position值,这是因为我们需要在滚动盒子里运用绝对定位来设置每个滚动元素的位置。最后,我们设置了滚动盒子的宽和高。

#scrollBox ul{
  list-style:none;
  position:absolute;
  top:0;
  left:0;
}

接下来,我们要对滚动盒子中的ul元素进行样式设置。我们将它们的list-style设为none,这样我们就可以隐藏项目符号。再次使用了绝对定位,我们将它们的top值设为0,使得每个元素都可以从最上方开始滚动。

#scrollBox ul li{
  float:left;
  margin-right:5px;
  width:100px;
  height:70px;
}

最后,我们对ul内的每个li元素进行样式设置。将其float设置为left,这样它们就可以在一排内展示。margin-right属性设置了项目之间相隔5px的距离。我们还为每个元素设置了100px的宽和70px的高。

3. jQuery实现

现在,我们已经为滚动效果设置好了HTML结构和CSS样式,在此之上,我们可以开始使用jQuery来实现滚动效果了。

//获取滚动盒子并且获取滚动元素
var $scrollBox = $('#scrollBox');
var $itemList = $scrollBox.find('ul');

//克隆一份滚动元素,使滚动效果不间断
$itemList.append($itemList.html());

//获取滚动元素的总个数
var itemNum = $itemList.children().length;

//设置滚动元素总长度
$itemList.css('width',(100*itemNum)+'px');

//设置定时器,控制滚动
var index = 0;
setInterval(function(){
  if(index>=itemNum-1){
    index = 0;
    $itemList.css('left','0px');
  }else{
    index++;
  }
  $itemList.animate({'left':-100*index+'px'},500);
},2000);

上述代码片段分为四个部分。首先,我们通过jQuery获取了scrollBox和itemList两个元素。然后,我们在itemList末尾添加一个完全一样的副本,这样我们就可以实现滚聚效果的持续性。接着,我们获取了itemList里的子元素个数,也就是整个滚动序列的长度,并且设置了itemList的总长度。

最后,我们使用了一个定时器,每隔两秒让滚动序列向左移动100px的距离。如果序列滚动到最后一个元素后,就将序列的left值重设为0,从头开始循环滚动。

4. 示例说明

下面是两个实现了不同滚动效果的代码 示例。

示例1:支持文字和图片垂直滚动

<div id="scrollBox">
  <ul>
    <li><img src="image1.jpg">文本内容1</li>
    <li><img src="image2.jpg">文本内容2</li>
    <li><img src="image3.jpg">文本内容3</li>
    <li><img src="image4.jpg">文本内容4</li>
  </ul>
</div>
#scrollBox{
  overflow:hidden;
  position:relative;
  width:300px;
  height:150px;
}
#scrollBox ul{
  list-style:none;
  position:absolute;
  top:0;
  left:0;
}
#scrollBox ul li{
  float:left;
  margin-right:5px;
  width:300px;
  height:70px;
  line-height:70px;
  padding-left:5px;
}
#scrollBox ul li img{
  float:left;
  margin-right:5px;
  width:60px;
  height:60px;
}
var $scrollBox = $('#scrollBox');
var $itemList = $scrollBox.find('ul');

$itemList.append($itemList.html());

var itemNum = $itemList.children().length;

$itemList.css('width',(300*itemNum)+'px');

var index = 0;
setInterval(function(){
  if(index>=itemNum-1){
    index = 0;
    $itemList.css('top','0px');
  }else{
    index++;
  }
  $itemList.animate({'top':-70*index+'px'},500);
},2000);

在这个示例中,我们使用了一个宽高各为300px和70px的li元素作为滚动元素。每个li元素中都包含了一张60px*60px的图片和一段文本内容。我们对滚动盒子和滚动元素都进行了样式设置。

示例2:支持图片水平滚动

<div id="scrollBox">
  <ul>
    <li><img src="image1.jpg"></li>
    <li><img src="image2.jpg"></li>
    <li><img src="image3.jpg"></li>
    <li><img src="image4.jpg"></li>
  </ul>
</div>
#scrollBox{
  overflow:hidden;
  position:relative;
  width:300px;
  height:175px;
}
#scrollBox ul{
  list-style:none;
  position:absolute;
  top:0;
  left:0;
}
#scrollBox ul li{
  float:left;
  margin-right:5px;
  width:100px;
  height:100px;
}
var $scrollBox = $('#scrollBox');
var $itemList = $scrollBox.find('ul');

$itemList.append($itemList.html());

var itemNum = $itemList.children().length;

$itemList.css('width',(100*itemNum)+'px');

var index = 0;
setInterval(function(){
  if(index>=itemNum-1){
    index = 0;
    $itemList.css('left','0px');
  }else{
    index++;
  }
  $itemList.animate({'left':-100*index+'px'},500);
},2000);

在这个示例中,我们使用了100px*100px的图片作为滚动元素,对滚动盒子和滚动元素进行了样式设置。这个示例的滚动方式是水平滚动,代码与示例1相似,只是滚动的距离由垂直改为了水平。

小结

通过这份攻略,我们成功实现了jQuery不间断滚动效果,支持文字、图片、垂直和水平滚动。这种滚动方式在一些新闻、公告头条之类的场景非常常见,能够为网页效果提供很好的增强。希望这份攻略能够对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 原生JavaScript实现的简单省市县三级联动功能示例

    下面是详细的攻略: 简介 本攻略讲解的是如何用原生 JavaScript 实现简单的省市县三级联动功能。本文示例展示了如何根据选择的省市联动获取该市所有的区县,并支持手动模拟触发省市变化的事件以更新区县列表。 实现 HTML 结构 首先,我们需要定义一个 HTML 结构来展示省市县三级联动: <!–省份–> <select id=&qu…

    jquery 2023年5月27日
    00
  • jquery实现Ajax请求的几种常见方式总结

    下面来详细讲解“jquery实现Ajax请求的几种常见方式总结”的完整攻略。 1. Ajax是什么? Ajax是Asynchronous JavaScript and XML的缩写,翻译过来就是异步的 JavaScript 和 XML。Ajax实现了在不刷新页面的情况下与服务器进行交互,它可以异步的发送HTTP请求,接收HTTP响应并更新页面。Ajax技术的…

    jquery 2023年5月28日
    00
  • jquery 注意事项与常用语法小结

    jQuery 注意事项 函数中的this关键字指向的是DOM元素而不是jQuery对象,如果需要在函数中使用jQuery对象,需要将this包装为$(this); 包裹DOM元素时要使用$(document).ready()保证DOM元素被正确加载,或者使用$(window).load()保证图片等资源也被加载; 在使用$选择器时,要尽可能缩小选择范围,以提…

    jquery 2023年5月27日
    00
  • jQuery AJAX timeout 超时问题详解

    jQuery AJAX Timeout 超时问题详解 概述 在进行 AJAX 请求时,我们经常需要设置请求的超时时间,以避免请求一直等待而不返回结果。jQuery 中通过设置 timeout 选项来设置 AJAX 请求的超时时间,默认为 0,表示不设置超时时间。本文将深入探讨 jQuery AJAX 请求的超时问题。 引言 AJAX 是异步的,当我们发起请求…

    jquery 2023年5月27日
    00
  • jquery选择器使用详解

    jQuery选择器使用详解 jQuery选择器是jQuery库中最强大和最常用的功能之一,它能够快速地选择并操作HTML文档中的元素。在本篇文章中,我们将讲解jQuery选择器的各种使用方法和技巧,以帮助您熟练掌握jQuery选择器的使用。 基本选择器 jQuery选择器支持许多基本的选择器,这些选择器可以通过元素名称、类名、ID、属性等方式来选择特定的HT…

    jquery 2023年5月28日
    00
  • jQWidgets jqxDraw path() 方法

    以下是关于“jQWidgets jqxDraw path() 方法”的完整攻略,包含两个示例说明: 方法简介 jqxDraw 控件的 path() 方法用于画布上绘制路径。该方法的语法如下: $("#draw").jqxDraw(‘path’, pathData, settings); 在上述法中,#draw 表示 jqxDraw 控件的…

    jquery 2023年5月10日
    00
  • JQuery 小练习(实例代码)

    我会详细讲解一下 “JQuery 小练习(实例代码)” 的完整攻略。下面是整个过程的步骤: 1. 准备工作 首先我们需要准备 JQuery 库,可以从 JQuery 官网 下载最新版的 JQuery。下载后,将其引入到 HTML 页面中: <script src="jquery.min.js"></script> …

    jquery 2023年5月27日
    00
  • jQWidgets jqxRangeSelector refresh() 方法

    以下是关于 jQWidgets jqxRangeSelector 组件中 refresh() 方法的详细攻略。 jQWidgets jqxRangeSelector refresh() 方法 jQWidgets jqxRangeSelector 组件的 refresh 方法用于刷新选择器。 语法 刷新选择器 $(‘#rangeSelector’).jqxRa…

    jquery 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部