html
<div class="data_bottom_list" id="data_bottom_list">
<ul class="data_bottom_ul">
<li></li>
<li></li>
</ul>
</div>
第一种JS,视觉效果为一点点的缓慢移动
$(document).ready(function () {
var marginTop = 0;
var bool = false;
// 判断有多少个li
var lengli = $(".data_bottom_ul li").length - 2;
setInterval(function () {
if (bool) return;//判断运行和停止
$(".data_bottom_ul li:first").animate({ marginTop: marginTop-- }, 1, 'linear', function () {
if (!($(this).is(":animated"))) { //判断是否有一个动画节点
if ((-marginTop) >= $(this).height() * lengli) { //判断移出位置是否超过高度
$(this).css("margin", "0");
$(this).appendTo($(".data_bottom_list")); //把第一个节点移到ul后面
marginTop = 0; //重新设置移动数值
}
}
});
}, 100);
$(".data_bottom_ul").mouseover(function () { //li鼠标移入,停止移动
bool = true;
});
$(".data_bottom_ul").mouseout(function () {
bool = false;
});
});
---------------------------------------------------------------------------------
$(function () {
var marginTop = 0;
var bool = false;
// 判断有多少个li
var lengli = $(".c_left_content div").length - 2;
var step = 1; // 步长
var speed = 100; // 速率
var temp = $(".c_left_content div:first");
var margin = temp.outerHeight(true) - temp.outerHeight() - 7;
setInterval(function () {
if (bool) return;//判断运行和停止
var first = $(".c_left_content div:first");
var height = first.outerHeight() + margin
marginTop += step
if (marginTop >= height) {
marginTop = 0;
first.css('margin-top', -marginTop + 'px');
first.appendTo($(".c_left_content"))
} else {
first.css('margin-top', -marginTop + 'px');
}
}, speed);
$(".c_left_content").mouseover(function () { //li鼠标移入,停止移动
bool = true;
}).mouseout(function () {
bool = false;
});
});
第二种JS,视觉效果为一列一列的滚动
var bool = false;
function autoScroll(obj) {
if (bool) return;//判断运行和停止
$(obj).find("ul").animate({ marginTop: "-50px" }, 500, function () { // margin高度为li高度
$(this).css({ marginTop: "0px" }).find("li:first").appendTo(this);
})
}
$(function () {
setInterval('autoScroll("#data_bottom_list")', 2000);
})
$("#data_bottom_list").mouseover(function () { //li鼠标移入,停止移动
bool = true;
});
$("#data_bottom_list").mouseout(function () {
bool = false;
});
两种方法,鼠标移入皆会停止滚动
参考文章:https://blog.csdn.net/qq_37914074/article/details/127805906
js 文字上下无限滚动
https://blog.csdn.net/qq_39045645/article/details/100099316
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=yes,viewport-fit=cover">
<title>title</title>
<meta name="keywords" content="title" />
<meta name="description" content="title" />
<link href="css/css_zsy.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<style>
.rdwd {
width: 90%;
margin: 0 auto;
margin-top: 1rem;
}
.rdwd_title {
text-align: center;
color: #00c8aa;
font-weight: bold;
font-size: 0.7rem;
}
.rdwd_box {
width: 100%;
height: 10rem;
overflow-y: auto;
margin-top: 0.5rem;
}
.rdwd_box::-webkit-scrollbar {
display: none;
}
.rdwd_box01 {
overflow: hidden;
}
.rdwd_box02 {
overflow: hidden;
}
.rdwd_box1 {
margin-top: 0.5rem;
}
.rdwd_box2 {
margin-top: 0.5rem;
}
.rdwd_box3 {
margin-top: 0.5rem;
}
.rdwd_box1 p:nth-child(1) {
color: #fd9c2b;
margin-bottom: 0.2rem;
}
.rdwd_box1 p:nth-child(2) {
color: #666666;
text-align: justify;
font-size: 0.55rem;
}
.rdwd_box2 p:nth-child(1) {
color: #fd9c2b;
margin-bottom: 0.2rem;
}
.rdwd_box2 p:nth-child(2) {
color: #666666;
text-align: justify;
font-size: 0.55rem;
}
.rdwd_box3 p:nth-child(1) {
color: #fd9c2b;
margin-bottom: 0.2rem;
}
.rdwd_box3 p:nth-child(2) {
color: #666666;
text-align: justify;
font-size: 0.55rem;
}
</style>
</head>
<body>
<!-- 热点问答 -->
<div class="rdwd">
<div class="rdwd_title">
热点问答
</div>
<div class="rdwd_box" id="rdwd_box">
<div class="rdwd_box01" onMouseOut="Up()" onMouseOver="Stop()" id="rdwd_box_1">
<div class="rdwd_box1">
<p><span style="color:#fd9c2b;font-weight:bold;margin-right:0.2rem; ">Q:</span>先天性心脏病治疗费用是多少吗?可以报销吗?
</p>
<p>
<span
style="color:#666666;font-weight:bold;margin-right:0.2rem;">A:</span>泰安市妇幼保健院是泰安市唯一一家三级甲等妇幼保健
院,收费与其他医院一致,符合收费规定。此外,泰安市
妇幼保健院是医保医院,与新农合、城镇医疗保险、国际
保险均有合作,符合条件者可按一定比例报销。
</p>
</div>
<div class="rdwd_box2">
<p><span style="color:#fd9c2b;font-weight:bold;margin-right:0.2rem;">Q:</span>先天性心脏病治疗效果如何?</p>
<p>
<span
style="color:#666666;font-weight:bold;margin-right:0.2rem;">A:</span>先心病患儿的治疗方法有很多,治疗效果要根据病情严
重程度和治疗是否及时决定。随着医疗技术的发展,房间
隔缺损、室间隔缺损等简单先心病基本可恢复与正常人一
样,而复杂先心病患者治疗及时生活质量大大提高。
</p>
</div>
<!-- <div class="rdwd_box3">
<p><span style="color:#fd9c2b;font-weight:bold;margin-right:0.2rem;">Q:</span>先天性心脏病会遗传吗?</p>
<p>
<span
style="color:#666666;font-weight:bold;margin-right:0.2rem;">A:</span>先心病不是一个明确的遗传性疾病,但具有一定的家族
倾向。先天性心脏病可由环境因素和遗传因素或两者共同
作用而引起,建议怀孕时做好遗传咨询和孕期保健。
</p>
</div> -->
<!-- <div class="rdwd_box3">
<p><span style="color:#fd9c2b;font-weight:bold;margin-right:0.2rem;">Q:</span>先天性心脏病会遗传吗?</p>
<p>
<span
style="color:#666666;font-weight:bold;margin-right:0.2rem;">A:</span>先心病不是一个明确的遗传性疾病,但具有一定的家族
倾向。先天性心脏病可由环境因素和遗传因素或两者共同
作用而引起,建议怀孕时做好遗传咨询和孕期保健。
</p>
</div>
<div class="rdwd_box3">
<p><span style="color:#fd9c2b;font-weight:bold;margin-right:0.2rem;">Q:</span>先天性心脏病会遗传吗?</p>
<p>
<span
style="color:#666666;font-weight:bold;margin-right:0.2rem;">A:</span>先心病不是一个明确的遗传性疾病,但具有一定的家族
倾向。先天性心脏病可由环境因素和遗传因素或两者共同
作用而引起,建议怀孕时做好遗传咨询和孕期保健。
</p>
</div>
<div class="rdwd_box3">
<p><span style="color:#fd9c2b;font-weight:bold;margin-right:0.2rem;">Q:</span>先天性心脏病会遗传吗?</p>
<p>
<span
style="color:#666666;font-weight:bold;margin-right:0.2rem;">A:</span>先心病不是一个明确的遗传性疾病,但具有一定的家族
倾向。先天性心脏病可由环境因素和遗传因素或两者共同
作用而引起,建议怀孕时做好遗传咨询和孕期保健。
</p>
</div> -->
</div>
<div class="rdwd_box02" id="rdwd_box_2"></div>
</div>
</div>
</body>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/viewport.js" type="text/javascript"></script>
<script src="js/js.js" type="text/javascript"></script>
<script src="./jquery-3.2.1.min.js"></script>
<script>
var box = document.getElementById("rdwd_box");
var con1 = document.getElementById("rdwd_box_1");
var con2 = document.getElementById("rdwd_box_2");
var speed = 10;
console.log(con1.scrollHeight);
console.log(box.scrollHeight);
// 内容不超过高度不需要滚动
if (con1.clientHeight >= box.clientHeight) {
con2.innerHTML = con1.innerHTML;
}
function ScrollUp() {
if (box.scrollTop >= con1.scrollHeight) {
box.scrollTop = 0;
} else
box.scrollTop++;
}
var i = setInterval("ScrollUp()", speed);
function Stop() {
clearInterval(i);
}
function Up() {
i = setInterval("ScrollUp()", speed);
}
// 适应iphonex
// ********************************************************************************
// if ($(window).width() === 375 && $(window).height() === 812 && window.devicePixelRatio === 3) {
// $("body").css("padding-bottom", "34px");
// }
// ************************************************************************************
</script>
</html>
左右循环滚动
.viewBox{
width: 100%;
overflow: hidden;
}
.scrollBox{
display: flex;
width: max-content;
}
.c_center_content_imgList {
display: block;
float: left;
width: max-content;
margin-top: 1vw;
}
.c_center_content_img {
display: flex;
flex-direction: column;
align-items: center;
float: left;
margin: 0 0 0 1vw;
}
.c_center_content_img img {
width: 5vw;
height: 5.6vw;
object-fit: scale-down;
margin-bottom: 0.46vw;
}
<div class="viewBox" id="viewBox" onMouseOut="vUp()" onMouseOver="vStop()">
<div class="scrollBox">
<div class="c_center_content_imgList" id="c_center_content_imgList">
<div class="c_center_content_img">
<img src="${a.featureFile}" alt="">
<span>${a.title}</span>
</div>
<div class="c_center_content_img">
<img src="${a.featureFile}" alt="">
<span>${a.title}</span>
</div>
</div>
<div class="c_center_content_imgList" id="c_center_content_imgList_01"></div>
</div>
</div>
var Lbox = document.getElementById("viewBox");
var Lcon1 = document.getElementById("c_center_content_imgList");
var Lcon2 = document.getElementById("c_center_content_imgList_01");
var Lspeed = 20;
//内容未超出时不滚动
if (Lcon1.clientWidth >= Lbox.clientWidth) {
Lcon2.innerHTML = Lcon1.innerHTML;
}
function scrollToLeft() {
if (Lbox.scrollLeft >= Lcon1.offsetWidth) {
Lbox.scrollLeft -= Lcon1.offsetWidth;
} else
Lbox.scrollLeft++;
}
var Lscroll = setInterval("scrollToLeft()", speed);
function vStop() {
clearInterval(Lscroll);
}
function vUp() {
Lscroll = setInterval("scrollToLeft()", speed);
}
//以上使用 scrollLeft 移动时,页面不断重绘会造成界面闪烁,下面使用 动画 实现 滚动
//css
.scroll-container {
width: 500px;
overflow: hidden;
}
.scroll-content {
white-space: nowrap;
position: relative;
animation: scroll 20s linear infinite;
display: flex;
width: max-content;
float: left;
}
.scroll-content:hover {
animation-play-state: paused;
}
@keyframes scroll {
0% {
left: 0;
}
100% {
left: -100%;
}
}
.item {
flex: 0 0 100px;
height: 100px;
float: left;
}
// html
<div class="scroll-container">
<div class="scroll-content">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="item">Item 11</div>
<div class="item">Item 21</div>
<div class="item">Item 31</div>
<div class="item">Item 41</div>
<div class="item">Item 51</div>
</div>
</div>
// js
var containerWidth = $('.scroll-container').outerWidth();
var contentWidth = $('.scroll-content').outerWidth();
if (containerWidth> contentWidth ) {
$('.scroll-content').css('animation-play-state', 'paused')
}