无间断滚动的新闻文章列表,兼容IE、Firefox和Opera,符合W3C标准。可作Marquee

要实现无间断滚动的新闻文章列表,需要用到HTML、CSS和JavaScript技术。下面是实现该功能的完整攻略:

HTML结构

首先,为了实现滚动效果,需要先在HTML中创建一个容器元素,用来包裹所有新闻文章列表。例如:

<div id="news-container">
  <!-- 新闻文章列表 -->
  <ul id="news-list">
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <!-- 更多新闻... -->
  </ul>
</div>

CSS样式

为了让滚动容器元素正常显示,需要设置合适的CSS样式,例如:

#news-container {
  overflow: hidden; /* 隐藏溢出部分 */
  width: 100%; /* 设置宽度为父元素的100% */
}

#news-list {
  margin: 0;
  padding: 0;
  list-style: none;
  white-space: nowrap; /* 不换行 */
  display: inline-block; /* 行内块元素 */
  -webkit-animation: marquee 15s linear infinite; /* 使用CSS动画实现滚动 */
  -moz-animation: marquee 15s linear infinite;
  -o-animation: marquee 15s linear infinite;
  animation: marquee 15s linear infinite;
}

@keyframes marquee {
  0% {
    transform: translateX(0); /* 初始位置为0 */
    -webkit-transform: translateX(0);
    -moz-transform: translateX(0);
    -o-transform: translateX(0);
  }
  100% {
    transform: translateX(-100%); /* 最终位置为-100%(整个宽度) */
    -webkit-transform: translateX(-100%);
    -moz-transform: translateX(-100%);
    -o-transform: translateX(-100%);
  }
}

JavaScript交互

为了实现兼容IE、Firefox和Opera的滚动效果,需要使用JavaScript来检测浏览器类型并动态生成CSS样式。例如:

var iswebkit = /webkit/i.test(navigator.userAgent);
var ismozilla = /mozilla/i.test(navigator.userAgent) && !/(compatible|webkit)/i.test(navigator.userAgent);
var isopera = /opera/i.test(navigator.userAgent);

if (iswebkit) { // Safari和Chrome浏览器支持CSS动画
  document.styleSheets[0].insertRule("@-webkit-keyframes marquee { ... }");
} else if (ismozilla) { // Firefox浏览器支持CSS动画
  document.styleSheets[0].insertRule("@-moz-keyframes marquee { ... }");
} else if (isopera) { // Opera浏览器使用单独的CSS属性
  var newsList = document.getElementById("news-list");
  newsList.style.OAnimation = "marquee 15s linear infinite";
}

示例说明

示例1:使用图片代替文字

<div id="news-container">
  <ul id="news-list">
    <li><img src="img1.jpg" alt="新闻1"></li>
    <li><img src="img2.jpg" alt="新闻2"></li>
    <li><img src="img3.jpg" alt="新闻3"></li>
    <!-- 更多新闻... -->
  </ul>
</div>

<style>
#news-list li {
  display: inline-block;
  vertical-align: middle;
  margin-right: 20px;
}

#news-list li img {
  max-width: 100%;
}
</style>

<script>
var newsList = document.getElementById("news-list");
var newsItems = newsList.getElementsByTagName("li");

for (var i = 0; i < newsItems.length; i++) {
  var img = newsItems[i].getElementsByTagName("img")[0];
  var title = img.getAttribute("alt");
  newsItems[i].innerHTML = "<a href='#'>" + img.outerHTML + "<span>" + title + "</span></a>";
}
</script>

示例2:滚动多列新闻

<div id="news-container">
  <ul id="news-list">
    <li><a href="#">新闻1</a></li>
    <li><a href="#">新闻2</a></li>
    <li><a href="#">新闻3</a></li>
    <li><a href="#">新闻4</a></li>
    <li><a href="#">新闻5</a></li>
    <li><a href="#">新闻6</a></li>
    <!-- 更多新闻... -->
  </ul>
  <ul id="news-list2">
    <li><a href="#">新闻1</a></li>
    <li><a href="#">新闻2</a></li>
    <li><a href="#">新闻3</a></li>
    <li><a href="#">新闻4</a></li>
    <li><a href="#">新闻5</a></li>
    <li><a href="#">新闻6</a></li>
    <!-- 更多新闻... -->
  </ul>
</div>

<style>
#news-container {
  width: 100%;
}

#news-list,
#news-list2 {
  width: 48%;
  display: inline-block;
  vertical-align: top;
}

#news-list li,
#news-list2 li {
  padding: 10px;
  border-bottom: 1px solid #ddd;
}

#news-list2 {
  margin-left: 2%;
}
</style>

经过上面的步骤,即可实现无间断滚动的新闻文章列表,兼容IE、Firefox和Opera,并符合W3C标准,可作Marquee。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:无间断滚动的新闻文章列表,兼容IE、Firefox和Opera,符合W3C标准。可作Marquee - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 简单了解微信小程序的目录结构

    下面是关于微信小程序的目录结构的详细讲解。 目录结构概述 在创建一个微信小程序工程时,会自动生成一套标准的目录结构,如下所示: ├── app.js ├── app.json ├── app.wxss ├── pages │ ├── index │ │ ├── index.js │ │ ├── index.json │ │ ├── index.wxml │ …

    css 2023年6月9日
    00
  • Bootstrap超大屏幕的实现代码

    Bootstrap超大屏幕(Extra large screens)是指屏幕宽度大于或等于1200px的设备,是响应式布局中的一种重要形态。实现Bootstrap超大屏幕的代码由CSS和HTML构成,下面我将为您介绍整个过程。 CSS文件引入 第一步是将Bootstrap的CSS文件引入到HTML文档中。可以将以下代码粘贴到HTML文档的head标签内。 &…

    css 2023年6月11日
    00
  • css3动画效果小结(推荐)

    对于“css3动画效果小结(推荐)”这一话题,以下是详细的攻略: 1. 前置知识 在学习和实践 CSS3 动画效果之前,需要掌握一些基本的前端知识,包括但不限于: HTML 和 CSS 的基本语法和使用方法 DOM 结构和节点的概念 CSS 中的选择器和优先级 CSS 盒模型和布局 CSS3 中新特性的概念和用法 同时也需要了解一些与动画相关的 CSS 属性…

    css 2023年6月9日
    00
  • CSS 实现各种 Loading 效果附带解析过程

    让我来详细讲解“CSS 实现各种 Loading 效果附带解析过程”的完整攻略。 什么是 Loading 效果? Loading 效果指的是在 Web 应用程序加载数据或执行长时间任务时,网页会显示一种状态,以表示正在加载系统或应用程序。例如,百度、谷歌、淘宝等网站在页面加载时会出现一个菊花图或一个圆圈不断旋转的动画。 怎么实现各种 Loading 效果? …

    css 2023年6月10日
    00
  • Ant Design中使用css切换的问题及解决

    Ant Design是一套基于React组件化开发的UI框架,提供了众多的可复用、易于维护的组件,方便快速开发Web应用。在Ant Design中,使用CSS切换的问题比较普遍,主要是由于Ant Design采用了Less预处理器,导致CSS文件中的变量和样式名不易于直接修改。下面,我们将详细讲解Ant Design中使用CSS切换的问题及解决方案。 问题描…

    css 2023年6月10日
    00
  • CSS教程:text-indent隐藏文字出现虚线框outline

    以下是关于“CSS教程:text-indent隐藏文字出现虚线框outline”的完整攻略: 1. 什么是text-indent及outline? 在CSS中,text-indent用于控制文本第一行的缩进,outline用于给指定元素添加边框。也就是说,如果文本的第一行被设置了缩进,并且当文本内容超出了元素框时,浏览器会自动添加虚线框。 2. 如何使用te…

    css 2023年6月10日
    00
  • css实现鼠标悬停时滑出层提示的方法

    实现鼠标悬停时滑出层提示的方法,可以通过CSS的:hover伪类和position属性来完成。 首先,我们可以先定义一个悬停的元素,例如一个链接或按钮: <a href="#" class="hover-element">鼠标悬停我</a> 然后在CSS中,我们可以为该元素设置一个:hover伪…

    css 2023年6月10日
    00
  • 关于Chrome浏览器字体显示的太小不一的bug处理

    关于Chrome浏览器字体显示太小不一的bug处理,主要有以下几个步骤: 第一步:检查Chrome浏览器设置 首先,我们需要检查一下Chrome浏览器的设置,确保它们没有被更改过。具体步骤如下: 打开Chrome浏览器。 点击右上角的菜单按钮,选择“设置”。 在设置页面中,找到“外观”一栏。 确保“字体大小”和“页面缩放”设置为默认值。 如果上述设置没有问题…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部