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

yizhihongxing

要实现无间断滚动的新闻文章列表,需要用到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日

相关文章

  • DIV+CSS通过border样式制作带箭头提示框效果

    使用DIV+CSS通过border样式制作带箭头提示框效果可以让我们轻松地实现一个简洁明了的弹出提示框,提高用户体验。以下为详细攻略。 第一步:HTML结构 首先,我们需要在HTML中添加一个容器元素,并在其中添加相关内容。例如,下面这段代码是一个带箭头提示框的基本HTML结构: <div class="tooltip"> &…

    css 2023年6月10日
    00
  • 判断横屏竖屏(三种)

    下面是关于判断横屏和竖屏的三种方法的完整攻略: 1. 使用CSS3媒体查询 可以使用CSS3媒体查询来检测并设置横竖屏的样式。首先,需要在CSS文件中添加媒体查询,并使用@media规则将其包装。例如,以下的媒体查询可以检测到设备是否处于横屏状态: @media screen and (orientation: landscape) { /* 竖屏样式 */…

    css 2023年6月9日
    00
  • Flex布局让子项保持自身高度的实现

    实现Flex布局中子项保持自身高度有以下两种常用方法。 方法一:使用align-self属性 在Flex容器中,使用align-self属性可以控制子项在交叉轴方向上的对齐方式。如果将align-self属性设置为stretch,则子项会被拉伸,以填满容器的交叉轴方向空间,即保持自身高度。 示例代码如下: .container { display: flex…

    css 2023年6月9日
    00
  • HTML head(头部)标签详解

    HTML的<head>标签是HTML文档的头部,它通常用来引入外部资源和指定文档的一些元数据。下面我们来详细讲解<head>标签的相关属性和用法。 <head>标签的语法格式如下: <!DOCTYPE html> <html> <head> <!– head元素内容 –>…

    Web开发基础 2023年3月16日
    00
  • IE7与web标准设计(3)

    IE7与web标准设计是一个非常重要的话题。在IE6时代,许多网页设计者都习惯于使用一些IE6专有的CSS属性和HTML标签来实现一些特定的效果。但这导致网页在非IE6浏览器下的兼容性问题严重,也使得整个web对标准的支持受到限制。随着IE7的出现,微软开始认真推动web标准的实现,导致IE7对于许多IE6专有的属性和标签的支持度有所下降。因此,为了让网页在…

    css 2023年6月9日
    00
  • 深入理解Vue的过度与动画

    下面是关于“深入理解Vue的过渡与动画”的完整攻略,包括以下内容: 1. 什么是过度与动画 Vue 中的过渡(transition)是在元素的 插入、更新 和 移除 时自动添加类名来实现过渡效果,例如淡入淡出、展开和折叠等。它利用了 CSS3 的几个属性。而动画(animation)是动态效果的实现方式,可以让元素在一段时间内完成多个关键帧,类似于 Flas…

    css 2023年6月10日
    00
  • 结合CSS3的布局新特征谈谈常见布局方法

    结合CSS3的布局新特征谈谈常见布局方法 CSS3引入了许多新的布局特性,使得网页布局更加灵活和多样化。本攻略将结合CSS3的布局新特征,讨论常见的网页布局方法,并提供两个示例说明。 1. 常见的网页布局方法 1.1. 流式布局 流式布局是一种基于百分比的布局方法,它可以根据浏览器窗口大小自动调整页面布局。流式布局可以使页面在不同设备上呈现出更好的可读性和可…

    css 2023年5月18日
    00
  • js css3实现图片拖拽效果

    实现图片拖拽效果,可以使用HTML5中新增的drag and drop API,也可以使用JavaScript和CSS3实现。以下是基于JavaScript和CSS3实现图片拖拽效果的攻略: 前置知识 在实现图片拖拽效果前,需要掌握以下知识: 事件的监听与触发 DOM操作 CSS3 transform属性 HTML5 draggable属性 实现步骤 第一步…

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