JS实现的新闻列表自动滚动效果示例

JS实现新闻列表自动滚动效果是一个常见的网页特效,它能够高效地展示网站上的新闻、文章、产品等信息,提高网站信息展示的效率和吸引度。在此,我将为大家介绍如何实现一个JS自动滚动效果,并提供两个实例说明来帮助大家更好地理解和应用。

准备工作

在开始制作自动滚动效果之前,我们需要先准备好一些工具和素材:

  • 基于HTML和CSS的网页布局和样式
  • JavaScript代码实现自动滚动效果
  • 图片和文字等信息素材
  • 鼠标悬停效果的CSS样式

制作步骤

步骤一:制作静态HTML页面

首先,我们需要先制作一个基于HTML和CSS进行布局和样式设计的静态页面,该页面中包含需要展示的新闻、文章、产品等信息内容。在此,我们可以使用ul列表来展示这些信息,并且为其设置一个独立的CSS样式。

步骤二:定义JavaScript变量

JavaScript变量的定义是实现自动滚动效果的关键,需要定义三个重要的变量来控制滚动效果的实现,分别是:

  • ul元素对象
  • li元素对象集合
  • 控制滚动方向的滚动速度和切换时间变量
var myUl = document.getElementById("myUl");//获取ul元素对象
var myLi = myUl.getElementsByTagName('li');//获取li元素对象集合
var myTimer;//自动滚动效果的定时器
var speed = 1;//滚动速度
var changeTime = 10;//切换时间

步骤三:实现自动滚动效果

在定义好变量后,我们可以利用JavaScript代码实现自动滚动效果。具体实现方法如下:

  • 当鼠标移动到ul列表中时,停止自动滚动效果,即清除定时器
  • 当鼠标移出列表时,重新开启自动滚动效果,即自动创建一个定时器
  • 利用JavaScript的for循环语句,实现li元素对象的位置循环变换,即实现自动滚动效果
function autoScroll() {
    myTimer = setInterval(function(){
        for(var i=0;i<myLi.length;i++){

            if(myLi[i].offsetTop<=-myLi[i].offsetHeight){
                myLi[i].style.top=myUl.offsetHeight+'px';
            }

            var curT = myLi[i].offsetTop-speed;
            myLi[i].style.top=curT+"px";

        }
    }, changeTime);
}

myUl.onmouseover = function(){
    clearInterval(myTimer);
}
myUl.onmouseout = function(){
    autoScroll();
}
autoScroll();

步骤四:添加鼠标悬停效果

最后,我们可以添加鼠标悬停效果来进一步增强页面的交互性。一般情况下,我们可以通过为li元素设置:hover伪类,来改变鼠标悬停时的CSS样式。另外,我们还可以通过JavaScript代码来改变鼠标悬停时的滚动方向和速度等参数。

以下是两个自动滚动效果实例,希望能够帮助大家更好地理解和运用:

示例一:纵向自动滚动

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS纵向自动滚动示例</title>
<style type="text/css">
#myUl{
    position:relative;
    width:360px;height:200px;
    overflow:hidden;
}
#myUl li{
    width:360px;height:30px;
    font-size:14px;line-height:30px;
    overflow:hidden;
    position:absolute;
    top:0px;left:0px;
}
#myUl li:hover{
    background-color:#ff0;
}
</style>
</head>
<body>
<ul id="myUl">
    <li>风险史03:对该基金和资产管理公司管理人治理相关人员是否有违法、违纪、违反证券业监管规律、不当行为的记录?</li>
    <li>风险史02:该基金所投资行业是否有一定的竞争局面,是否有明显的专业壁垒,资产管理公司和基金本身专业能力又如何?</li>
    <li>风险史01:该基金是否曾出现过重大赎回、停赎或其他事故?公司管理稳定性如何?</li>
    <li>元素素09:双元素魔方精品指南:“魔力元素”的前身</li>
    <li>元素素08:臭氧与冰箱的民间疗法:极地捕手</li>
    <li>元素素07:毒瘤普及绝招:电鳞龙对战教程</li>
    <li>元素素06:双元素魔方入门指南:红蓝棍</li>
    <li>元素素05:毒瘤要角的白日梦:极光小凤</li>
    <li>元素素04:保持淡然心境 稳妥战斗方案:青蛙巨人</li>
    <li>元素素03:两元素思维碰撞:反斗鼹鼠与海象</li>
    <li>元素素02: 曾经很强的聚石灰双吼兽:烈火狮</li>
    <li>元素素01: 活在阴间的旅店老板:暗黑骑士</li>
</ul>
<script type="text/javascript">
    var myUl = document.getElementById("myUl");
    var myLi = myUl.getElementsByTagName('li');
    var myTimer;
    var speed = 1;
    var changeTime = 10;
    function autoScroll() {
        myTimer=setInterval(function(){
            for(var i=0;i<myLi.length;i++){
                if(myLi[i].offsetTop<=-myLi[i].offsetHeight){
                    myLi[i].style.top=myUl.offsetHeight+'px';
                }
                var curT = myLi[i].offsetTop-speed;
                myLi[i].style.top=curT+"px";
            }
        }, changeTime);
    }
    myUl.onmouseover = function(){
        clearInterval(myTimer);
    }
    myUl.onmouseout = function(){
        autoScroll();
    }
    autoScroll();
</script>
</body>
</html>

示例二:横向自动滚动

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS横向自动滚动示例</title>
<style type="text/css">
#myUl{
    position:relative;
    width:360px;height:80px;
    overflow:hidden;
}
#myUl li{
    float:left;width:180px;height:80px;
    font-size:14px;line-height:80px;
    overflow:hidden;
}
#myUl li:hover{
    background-color:#ff0;
}
</style>
</head>
<body>
<ul id="myUl">
    <li>元素素08:臭氧与冰箱的民间疗法:极地捕手</li>
    <li>元素素07:毒瘤普及绝招:电鳞龙对战教程</li>
    <li>元素素06:双元素魔方入门指南:红蓝棍</li>
    <li>元素素05:毒瘤要角的白日梦:极光小凤</li>
    <li>元素素04:保持淡然心境 稳妥战斗方案:青蛙巨人</li>
    <li>元素素03:两元素思维碰撞:反斗鼹鼠与海象</li>
    <li>元素素02:曾经很强的聚石灰双吼兽:烈火狮</li>
    <li>元素素01:活在阴间的旅店老板:暗黑骑士</li>
</ul>
<script type="text/javascript">
    var myUl = document.getElementById("myUl");
    var myLi = myUl.getElementsByTagName('li');
    var myTimer;
    var speed = 1;
    var changeTime = 10;
    function autoScroll() {
        myTimer=setInterval(function(){
            for(var i=0;i<myLi.length;i++){
                if(myLi[i].offsetLeft<=-myLi[i].offsetWidth){
                    myLi[i].style.left=myUl.offsetWidth+'px';
                }
                var curL = myLi[i].offsetLeft-speed;
                myLi[i].style.left=curL+"px";
            }
        }, changeTime);
    }
    myUl.onmouseover = function(){
        clearInterval(myTimer);
    }
    myUl.onmouseout = function(){
        autoScroll();
    }
    autoScroll();
</script>
</body>
</html>

以上就是JS实现新闻列表自动滚动效果示例的完整攻略,希望能对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现的新闻列表自动滚动效果示例 - Python技术站

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

相关文章

  • 文本有关的样式和jQuery求对象的高宽问题分别说明

    文本有关的样式 标题 在Markdown中,标题使用#、##、###等语法来表示不同级别的标题。 示例: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 粗体和斜体 使用**和*分别表示粗体和斜体。 示例: 这是**粗体**,这是*斜体*。 删除线 使用~~来表示删除线。 示例: 这是~~删除…

    jquery 2023年5月28日
    00
  • jQWidgets jqxWindow collapse()方法

    jQWidgets是一款jQuery插件,提供了丰富的界面组件,其中包含了jqxWindow组件。jqxWindow组件是一个可伸缩、可拖拽的弹出窗口,collapse()方法是其中的一个重要功能,下面我将详细介绍该方法的使用。 1. 准备工作 在使用jqxWindow组件之前,需要先引入相关的js和css文件。可以通过以下步骤完成: 在网页的<hea…

    jquery 2023年5月12日
    00
  • jQuery Selectors(选择器)的使用(四-五、内容篇&可见性篇)

    下面是关于 “jQuery Selectors(选择器)的使用(四-五、内容篇&可见性篇)” 的完整攻略。 内容篇 内容篇指的是根据元素的内容信息来对元素进行筛选和操作。以下是一些常用的内容选择器: :contains() :contains()选择器用来选取包含特定文本的元素。语法为 $(‘:contains(text)’): // 选取包含文本“…

    jquery 2023年5月28日
    00
  • jQWidgets jqxDataTable clearFilters()方法

    以下是关于“jQWidgets jqxDataTable clearFilters()方法”的完整攻略,包含两个示例说明: 简介 clearFilters() 方法是 jqxDataTable 控件方法,用于清除表中的所有筛选器。 攻略 以下是 jqxDataTable 控件的 clearFilters() 方法的完整攻略: 使用 clearFilters(…

    jquery 2023年5月11日
    00
  • jQuery使用ajaxSubmit()提交表单示例

    jQuery是一个基于JavaScript的开源JS库,它主要用于操作HTML文档,实现动态效果和交互行为。 在实际开发中,我们通常使用ajax技术来提交表单。jQuery中提供了方便快捷的ajax方法,其中包括ajaxSubmit()方法。现在,我将详细讲解如何使用ajaxSubmit()方法提交表单。 1. 引用jQuery库和jquery.form.j…

    jquery 2023年5月28日
    00
  • jQWidgets jqxTextArea宽度属性

    以下是关于 jQWidgets jqxTextArea 组件中宽度属性的详细攻略。 jQWidgets jqxTextArea 宽度属性 jQWidgets jqxTextArea 组件的宽度用于设置组件的宽度。可以使用该属性轻松地更改组件的宽度,以适应您应用程序的布局需求。 语法 $(‘#textarea’).jqxTextArea({ width: yo…

    jquery 2023年5月11日
    00
  • jQWidgets jqxWindow setContent()方法

    针对jQWidgets库中jqxWindow插件的setContent()方法,我来给你详细讲解一下。 什么是jQWidgets jqxWindow setContent()方法 jQWidgets jqxWindow是什么? jQWidgets jqxWindow是一个用于页面视图的可定制、可移动、可最小化并允许用户交互的插件。它可以与其他组件结合使用,以…

    jquery 2023年5月12日
    00
  • 如何使用jQuery Simone Plugin设计窗口管理器

    使用jQuery Simone Plugin(下文简称Simone)可以方便地实现一个窗口管理器,使得网站在交互和界面设计方面更加优秀。下面是使用Simone设计窗口管理器的完整攻略。 1. 导入Simone Simone可以在官方网站上下载,并可以通过<script>标签引入。在<head>标签中添加以下代码: <script…

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