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

yizhihongxing

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简单实现根据日期计算星期几的方法

    以下是“jQuery简单实现根据日期计算星期几的方法”的完整攻略。 1. 了解JavaScript日期对象 在使用 jQuery 实现根据日期计算星期的功能之前,我们需要对 JavaScript 的 Date 对象有一定的了解。 Date 对象表示时间的一种方式,可以用来获取或设置日期和时间。其中比较重要的 API 包括: Date(year, month,…

    jquery 2023年5月28日
    00
  • jQuery keyup()方法

    jQuery load()方法用于从服务器加载数据,并将返回的数据放入指定的元素中。该方法是一种简单的方式来从服务器获取HTML、XML、JSON等数据。 以下是load()方法的详细攻略: 语法 $(selector).load(url, data, callback) 参数 selector:必需,用于选择要放置返回数据的元素。 url:必需,用于指定要…

    jquery 2023年5月9日
    00
  • jQuery UI的toggleClass方法

    以下是关于 jQuery UI 的 toggleClass() 方法的详细攻略: jQuery UI toggleClass() 方法 toggleClass() 方法用于在元素上切换一个或多个类。如果元素已有了该类,则该类将被删除。如果元素没有该类,则该类将被添加。 语法 $(selector).toggleClass(classname); 参数 cla…

    jquery 2023年5月11日
    00
  • jQWidgets jqxComboBox getItem()方法

    以下是关于“jQWidgets jqxComboBox getItem()方法”的完整攻略,包含两个示例说明: 简介 jqxComboBox 控件的 getItem() 方法用于获取下拉列表中指定索引位置的选项。 完整攻略 以下是 jqxComboBox 控件 getItem() 方法的完整攻略: 定义 getItem() 方法 在 jqxComboBox …

    jquery 2023年5月11日
    00
  • jQWidgets jqxScheduler statuses属性

    jQWidgets是一个功能丰富的JavaScript框架,其中的jqxScheduler插件提供了一种简单易用的方式来创建交互式的日程安排和任务调度。statuses属性是jqxScheduler中非常强大和灵活的一个属性,它允许用户自定义如何表示日程安排或任务的状态信息。在本文中,我们将会详细介绍statuses属性的使用方法及其注意点,包含了两个示例来…

    jquery 2023年5月11日
    00
  • 如何使用jQuery Mobile制作一个迷你尺寸的水平控制组

    下面是使用jQuery Mobile制作一个迷你尺寸的水平控制组的完整攻略。 步骤一:准备工作 首先需要引入jQuery Mobile的库文件和jQuery库文件。可以使用CDN地址或者下载到本地。 <head> <link rel="stylesheet" href="https://code.jquery.…

    jquery 2023年5月12日
    00
  • js form action动态修改方法

    动态修改表单的 Action 属性是在表单提交时将表单的数据使用 HTTP 请求发送到 Action 的 URL 地址,实现前端与后端的数据传输,并将数据处理结果显示给用户。使用 JavaScript 可以动态修改表单的 Action 属性来实现动态提交表单的目的。 步骤如下: 获取表单元素并为其添加绑定事件,当事件触发时执行处理函数。 const form…

    jquery 2023年5月27日
    00
  • 使用jQuery管理选择结果

    使用jQuery管理选择结果,主要是通过jQuery选择器选中特定的HTML元素,然后对其进行一些操作,比如改变样式、绑定事件等。 以下是使用jQuery管理选择结果的完整攻略: 1. 引入jQuery库 首先需要在HTML中引入jQuery库,可以直接在head标签中加入以下代码: <script src="https://cdn.boot…

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